首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AES/CFB8 IV尺寸

AES/CFB8 IV尺寸
EN

Stack Overflow用户
提问于 2013-01-30 17:12:23
回答 2查看 1.1K关注 0票数 2

AFAIK,CFB8模式的块大小为1字节。所以我可以推断出IV也是1字节长。然而,当我做一个测试,将相同的iv只有1个字节传递到用于加密和解密函数的公共crypto create函数中时,加密和解密的消息不匹配。

所以我认为API应该使用超过1个字节作为IV。我想知道为什么?

代码语言:javascript
复制
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);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-30 17:34:33

它没有1个字节的块大小,它只是每1个字节重新同步一次。IV实际上是16字节(对于AES)。

票数 3
EN

Stack Overflow用户

发布于 2013-01-30 17:34:36

IV大小必须与对称算法块大小匹配。因此,对于AES,您应该有一个16字节的IV。

CFB-8的移位大小为一个字节。它与密码的块大小无关。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14600277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档