我已经为这个问题苦苦挣扎了好几天了,我似乎无法弄清楚
我尝试使用 CCCrypt 解密加密字符串,我有使用 Base64 编码的加密字符串,我有密钥和 iv。加密是带有 PKCS7Padding 的 AES256 CBC。
这是我现在使用的代码:
- (NSData *)AES256DecryptWithKey:(NSString *)key
{
char keyPtr[kCCKeySizeAES128+1];
bzero(keyPtr, sizeof(keyPtr));
NSUInteger dataLength = [self length];
size_t bufferSize = dataLength + kCCBlockSizeAES128;
void *buffer = malloc( bufferSize );
unsigned char *iv = [@"IV String" cStringUsingEncoding:NSUTF8StringEncoding];
size_t numBytesDecrypted = 0;
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
kCCAlgorithmAES128,
kCCOptionPKCS7Padding,
keyPtr, kCCKeySizeAES256,
iv,
[self bytes],
dataLength,
buffer,
bufferSize,
&numBytesDecrypted);
if( cryptStatus == kCCSuccess )
{
return [NSData dataWithBytesNoCopy:buffer length:numBytesDecrypted];
}
free( buffer );
return nil;
}
但是cryptStatus
一直返回 0,我找不到找出原因的方法。我究竟做错了什么?
提前致谢!