我很难NSData
用NSData key
. 虽然使用一切解密NSString
工作正常,但使用数据作为密钥,该方法返回 null NSData
,即使状态正常,并且密钥对于该数据也是正确的。这是我的电话
NSData *decrypted = [AES AES128DecryptWithKey:data key:mute];
NSLog(@"DECRYPTED >> %@", decrypted);
还有我的方法
+ (NSData*)AES128DecryptWithKey:(NSData*) data key:(NSData*)key {
NSUInteger dataLength = [data length];
NSLog(@"trying to decrypt >> %@ with key >> %@", data, key );
size_t bufferSize = dataLength + kCCBlockSizeAES128;
void* buffer = malloc(bufferSize);
size_t numBytesDecrypted = 0;
CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding,
[key bytes], kCCKeySizeAES128,
NULL /* initialization vector (optional) */,
[data bytes], dataLength, /* input */
buffer, bufferSize, /* output */
&numBytesDecrypted);
NSLog(@"cryptstatus %d", cryptStatus);
if (cryptStatus == kCCSuccess)
{
return [NSData dataWithBytesNoCopy:buffer length:numBytesDecrypted];
}
free(buffer); //free the buffer;
return nil;
}
NSLog 输出:
trying to decrypt >> <152f052e 79436003 7a9c1a59 3b82f1c4>
with key >> <1b510e76 ac0000a1 027af26a e25ad24a>
cryptstatus 0
DECRYPTED >> <>
调查了一下RNEncryptor
,但它只有 aes256,而我需要 128。有什么想法吗?