iOS基于openssl 的AES-128-cbc-pkcs5 加解密

前段时间自己写客户端加密解密,查了不少资料。现在把自己写的过程记录下来,分享出去让没写过 openssl aes 的小伙伴少闹点心

闲话不说进入正题 

1.AES加密和DES加密的区别这里就不提了,网上好多解释

2.AES加密的方式有很多 128 256 cbc ecb cfb 等等,这里介绍AES-128-cbc-pkcs5 加解密

你可以写一个公共的加密类 也可以给系统类写一个类的扩展 category

因为我的是给接口参数进行加密 所以我的就给NSString写了一个类扩展,如果你自己要写可根据自己情况写(比如给NSData写一个类扩展)

当时写AES的时候因为好长时间不碰C了,所以开辟空间和初始化的时候经常出问题,还有就是加密解密都是单线程的,所以加上了线程锁

解密的时候,最后不要忘了去除填充

好了不多说了直接上代码

4.AES-128-cbc-pkcs5 加密

-(NSString*)encryptAES:(NSString*)key
{
    @synchronized (self) {
        const char *Source;
        unsigned char *InputData=NULL;
        unsigned char *EncryptData=NULL;
        char *DecryptData=NULL;
        
        unsigned char Key[AES_BLOCK_SIZE+1];	//建议用unsigned char
        unsigned char iv[17] = "****************";	//加密的初始化向量,加密解密要一样就行 因为CBC 是循环加密方式 所以这个地方的加密向量一定要和解密端商量好
        AES_KEY AesKey;
        
        int DataLen=0,SetDataLen=0;
        NSData *dat = [self dataUsing
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值