一、
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"
四、文件请到这里拿:
http://www.oschina.net/code/snippet_2559367_56682
本文深入讲解AES加密技术的六大核心参数,包括算法模式、秘钥长度、秘钥、秘钥偏移量、补码方式及加密结果编码方式。重点解析iOS平台下AES加密的实现流程与注意事项,如秘钥管理、前后端加密一致性等。
1211

被折叠的 条评论
为什么被折叠?



