无论密钥大小如何,AES必须具有16字节的固定IV大小

时间:2016-05-09 09:00:03

标签: ios objective-c aes

您好我正在使用BBAES来加密和解密我的代码。但是我在这一行中遇到了这样的错误。

encryptedData=[bb encryptedDataFromData:[bb dataFromString:_secret encoding:BBAESDataEncodingBase64] IV:[bb dataFromString:iv encoding:BBAESDataEncodingBase64] key:hashKeyData options:BBAESEncryptionOptionsIncludeIV];

我的错误是

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'AES must have a fixed IV size of 16-bytes regardless key size.'

这是我创建hashKeyData

的方法
hashKeyData=[bb keyByHashingPassword:_key keySize:BBAESSaltDefaultLength];

请帮帮我。 感谢

1 个答案:

答案 0 :(得分:0)

您正在通过调用

result = coll.aggregate(cursor, allowDiskUse=True) 字符串转换为iv数据
iv

这将为您提供多于或少于16个字节,具体取决于[bb dataFromString:iv encoding:BBAESDataEncodingBase64] ,这就是您获得异常的原因。

您应该使用的功能是iv。这使用MD5哈希创建一个16字节的NSData实例。

IVFromString: