// 和服务端约定:KeySize:kCCKeySizeAES128, Padding:PKCS7, mode:ECB, BlockSize:kCCBlockSizeAES128
- (NSString *)private_encrypWithKey:(NSString *)key content:(NSString *)content {
NSData * contentData = [content dataUsingEncoding:NSUTF8StringEncoding];
char keyPtr[kCCKeySizeAES128 + 1];
memset(keyPtr, 0, sizeof(keyPtr));
[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];
size_t bufferSize = contentData.length + kCCBlockSizeAES128;
void *buffer = malloc(bufferSize);
size_t encryptedSize = 0;
CCCryptorStatus cryptStatus = CCCrypt(
kCCEncrypt,
kCCAlgorithmAES,
kCCOptionPKCS7Padding | kCCOptionECBMode,
keyPtr,
kCCKeySizeAES128,
NULL,
[contentData bytes],
contentData.length,
buffer,
bufferSize,
&encryptedSize
);
if (cryptStatus == kCCSuccess) {
NSString * output = [[NSData dataWithBytesNoCopy:buffer length:encryptedSize] base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
return [output copy];
}
return nil;
}
使用iOS 原生AES加密
最新推荐文章于 2023-08-24 13:50:22 发布