-1
我已将加密字符串“我是个好孩子”并带有密钥“1234”,我想解密它。这是我的代码,但它最终输出“NULL”,但不是“我是一个好孩子”。我怎样才能得到正确的结果?如何在iOS中使用AES256解密字符串
NSString *content = @"VvHjCwHUjIgZOiYlncPWEoX/UInS7ZNbC4sy8ESa/fM=";
NSData *contentData = [content dataUsingEncoding:NSUTF8StringEncoding];
NSUInteger dataLength = contentData.length;
NSString *key = @"1234";
char keyPtr[kCCKeySizeAES256+1];
bzero(keyPtr, sizeof(keyPtr));
[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];
size_t bufferSize = dataLength + kCCBlockSizeAES128;
void *buffer = malloc(bufferSize);
size_t numBytesDecrypted = 0;
CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmAES128,
kCCOptionPKCS7Padding,
keyPtr, kCCKeySizeAES256,
NULL,
contentData.bytes, dataLength,
buffer, bufferSize,
&numBytesDecrypted);
if (cryptStatus == kCCSuccess) {
NSData *result = [NSData dataWithBytesNoCopy:buffer length:numBytesDecrypted];
if(result) {
NSString * string = [[NSString alloc]initWithData:result encoding:NSUTF8StringEncoding];
NSLog(@"%@",string);
}
}else {
free(buffer);
}
1.“为什么不是代码工作”类型的Q超出了SO的范围。 2.至少:你具体的Q是什么?错误讯息?错误的结果?哪一个?预期结果? –
感谢您的回答。我的问题是为什么它返回NULL而不是“我是一个好孩子” –