iOS AES加密流程,AES加密的几个参数
一、
AES加密有很多种组合方式,以下参数:
1、算法模式
2、秘钥长度
3、秘钥
4、秘钥偏移量
5、补码方式
6、加密结果编码方式
参数1:iOS代码中参数:kCCOptionECBMode、貌似iOS只支持ECB模式的,有需求的研究分享一下
参数2:只有2种,128位,或者256位,在网上找AES加密的时候要分清128还是256,本文是256。
128和256在我们分类中代码写法差距不大,只是参数变了。
推荐你去网上下一个128的AES加密分类与本文的比较6个参数,更能理解。
我就不提供128的给大家了,因为本文的实例是我项目中正常运行的,不掺杂其他让大家迷惑的128了。
参数3:秘钥,这个看你项目的要求,公钥还是私钥都有可能。
参数4:偏移量!这个参数一定要跟java/php后台统一!不然你们加密得到的结果永远不一样!nopadding就是没有偏移量,推荐用这个。
参数5:只有2种,kCCOptionPKCS7Padding/kCCOptionPKCS5Padding,iOS我只看到了kCCOptionPKCS7Padding
参数6:这个一般都是base64,使用的谷歌第三方 GTMBase64 我会放在附件里。
二、
AES加密大致流程:2步
1、把一个字符串,用我们AES的NSData分类转换为NSData类型。
2、再把data类型的数据用GTMBase64转换为字符串。
三、
注意点
私钥宏定义:私钥请求接口获得。
#define KappSecret @"KappSecret"
公钥宏定义:公钥向后台人员要,他给你。
#define KPublicKey @"KPublicKey"
四、文件请到这里拿: