AFAIK,CFB8 模式的块大小为 1 字节。所以我可以推断IV也是1字节长度。但是,当我进行测试时,将仅 1 个字节的相同 iv 传递给用于加密和解密功能的通用加密创建函数时,加密和解密的消息不匹配。
所以我认为 API 应该占用超过 1 个字节来用作 IV。我想知道为什么?我的理解有什么问题吗?
CCCryptorStatus result = CCCryptorCreateWithMode(operation,
kCCModeCFB8,
kCCAlgorithmAES128,
ccNoPadding,
iv.bytes,
key.bytes,
key.length,
NULL,
0,
0,
0,
&_cryptor);
if (result == kCCSuccess)
result = CCCryptorUpdate(_cryptor,
data.bytes,
data.length,
cipherData.mutableBytes,
cipherData.length,
&outLength);
if (result == kCCSuccess)
result = CCCryptorFinal(_cryptor,
cipherData.mutableBytes,
cipherData.length,
&outLength);
if (result == kCCSuccess)
result = CCCryptorRelease(_cryptor);