您的位置:首页 > 移动开发 > IOS开发

iOS AES加密方式,加密模式ECB,填充方式pkcs7padding

2020-06-17 10:11 183 查看
[code]#import <CommonCrypto/CommonCryptor.h>

// AES加密之ECB128模式 Padding

- (NSString *)cs_aes128EncryptECBModeWithkey:(NSString *)key {

        if (key.length == 0) {

        key = @"AES128Key";

    }

    char keyPtr[kCCKeySizeAES128+1];

    memset(keyPtr, 0, sizeof(keyPtr));

    [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];

    NSData* data = [self 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];

        NSString *base64String = [resultData base64EncodedStringWithOptions:0];

        return base64String;

    }

    free(buffer);

    return nil;

}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: