私はこの問題に数日間苦労してきましたが、理解できないようです
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 を返し続け、その理由を理解する方法が見つかりませんでした。私は何を間違っていますか?
前もって感謝します!