zoukankan      html  css  js  c++  java
  • IOS AES加密之ECB128模式

    1、AES加密模式有好几种,网上大多是CBC、256模式,找了好久才找到解决ECB128模式加密。

    AES需要导入头文件

    #import <CommonCrypto/CommonCryptor.h>

    #import "GTMBase64.h" //加密后的数据在Base64转字符串类型

    +(NSString *)AES128Encrypt:(NSString *)plainText key:(NSString *)key
    {
        char keyPtr[kCCKeySizeAES128+1];
        memset(keyPtr, 0, sizeof(keyPtr));
        [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];
        
        NSData* data = [plainText dataUsingEncoding:NSUTF8StringEncoding];
        NSUInteger dataLength = [data length];
        
        size_t bufferSize = dataLength + kCCBlockSizeAES128;
        void *buffer = malloc(bufferSize);
        size_t numBytesEncrypted = 0;
        CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
                                              kCCAlgorithmAES128,
                                              kCCOptionPKCS7Padding|kCCOptionECBMode,
                                              keyPtr,
                                              kCCBlockSizeAES128,
                                              NULL,
                                              [data bytes],
                                              dataLength,
                                              buffer,
                                              bufferSize,
                                              &numBytesEncrypted);
        if (cryptStatus == kCCSuccess) {
            NSData *resultData = [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];
            return [GTMBase64 stringByEncodingData:resultData];
        }
        free(buffer);
        return nil;
    }

    直接放 Demo: AES/ECB模式128Demo下载 密码:qj57

  • 相关阅读:
    四.Oracle聚合函数和内外全连接
    三.Oracle常用数据类型及单行函数总结
    二.Sql语言的分类及运算符
    一.Oracle的安装与连接
    Maven环境的配置
    javaSE基础总结篇04
    javaSE基础总结篇03
    javaSE基础总结篇02
    JavaSE基础篇总结01
    表分区
  • 原文地址:https://www.cnblogs.com/qq95230/p/5908175.html
Copyright © 2011-2022 走看看