【问题标题】:AES encryption in iPhone kccparamerror on device设备上 iPhone kccparamerror 中的 AES 加密
【发布时间】:2012-09-13 12:14:39
【问题描述】:

我正在加密像图像文件这样的大文件(可能有任何大小 - 从一些 KB 到大 MB)。 我正在使用以下代码进行加密,在 iPhone Simulator 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,

这种加密给了我一个 kCCaramError (-4300)。我在模拟器中有相同的值 - 但它在那里工作正常。 有什么帮助吗?

【问题讨论】:

  • 请将您的答案标记为已接受

标签: iphone ios cryptography aes security-framework


【解决方案1】:

我用错了钥匙。

我的密钥由 42 个字符组成。

相反,它应该有 24 个字符。 (使用密钥 = 123456789012345678901234 有效)。

【讨论】:

    猜你喜欢
    • 2011-04-28
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2020-04-05
    • 2011-12-01
    • 2011-01-19
    相关资源
    最近更新 更多