使用iOS 原生AES加密

来源:互联网 发布:linux red5安装与配置 编辑:程序博客网 时间:2024/06/14 11:58
// 和服务端约定: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;}