我正在加密像图像文件这样的大文件(可能有任何大小——一些KB到大MB)。我使用以下代码进行加密,这在iPhone模拟器5.1:上运行良好
+ (NSData *)encryptedDataForData:(NSData *)data key:(NSData *)key error:(NSError **)error {
size_t outLength;
NSMutableData * cipherData = [NSMutableData dataWithLength:data.length + kCCBlockSizeAES128];
CCCryptorStatus result = CCCrypt(kCCEncrypt,
kCCAlgorithmAES128,
kCCOptionPKCS7Padding,
key.bytes,
key.length,
NULL,
data.bytes,
data.length,
cipherData.mutableBytes,
cipherData.length,
&outLength);
if (result == kCCSuccess) {
cipherData.length = outLength;
}
else {
NSLog(@"errorcode: %d", result);
return nil;
}
return cipherData;
}
然而,当我使用相同的代码加密设备上的一些图像时-iPhone 5.1.1,
这个加密给了我一个kCCParamError(-4300)。我在模拟器中有相同的值,但它在那里工作得很好。请帮忙吗?
我使用了一个错误的键。
我的钥匙由42个字符组成。
相反,它应该有24个字符。(使用密钥=123456789012345678901234有效)。