IOS AES加密之ECB128模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于IOS AES加密之ECB128模式的主要内容,如果未能解决你的问题,请参考以下文章

iOS逆向之对称算法(下)

AES-128-ECB 16进制加密解密算法

AES在线加密解密-附AES128,192,256,CBC,CFB,ECB,OFB,PCBC各种加密解密源码

iOS AES加密

高级加密标准AES的工作模式(ECBCBCCFBOFB)

关于蓝牙通信的数据AES128 ECB加密解密