1.起因是配合服务端进行加密工作,一开始使用AES256,并对比一个AES在线加密的网站
2.出现的状况是AES128可以匹配上网站的结果,AES256无论怎么调整都无法匹配
3.代码如下
-(NSData *)aes_encryptData:(NSData *)inputData withKey:(NSString *)key
{
NSLog(@"inputData AES %@",inputData);
char keyPtr[kCCKeySizeAES256+1];
bzero(keyPtr, sizeof(keyPtr));
[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];
NSUInteger dataLength = [inputData length];
size_t bufferSize = dataLength + kCCBlockSizeAES128;
void *buffer = malloc(bufferSize);
size_t numBytesEncrypted = 0;
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmAES128,
kCCOptionPKCS7Padding,
keyPtr, kCCKeySizeAES128,
NULL,
[inputData bytes], dataLength,
buffer, bufferSize,
&numBytesEncrypted);
if (cryptStatus == kCCSuccess) {
return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];
}
free(buffer);
return nil;
}
4.我想知道的是,AES256是否通用,如果通用如何能够得出和网站结果一样的加密串?
黄舟2017-04-18 09:09:52
暗号化アルゴリズムのバージョンが一致していませんか?それとも何かパラメータが違うのでしょうか? 次の AES ライブラリを参照できます:
https://github.com/RNCryptor/RNCryptor