iOS网络请求整个参数(字典)AES加密

由于之前的项目中手机短信各种被刷,所以后台决定将数据请求以及返回的数据加密,本来以为只是将参数的value加密,结果后台为了自己方便,要把整个参数体加密,所以,原本封装的AFN就没办法用了,很尴尬,所以决定自己重新封装咯.

首先封装AES加密

我采用的是AES128,kCCOptionPKCS7Padding.网上也很多相关的例子,不多做介绍.

然后我又将AES又进行了一次封装:先base64加密,然后AES加密.当然解密反过啦就行了!

后面我会将demo贴出来,直接看代码更清楚.

然后是数据请求封装

数据请求使用的是post请求,原生的NSURLSession封装.参数加密的过程无非是:1,参数字典转NSData;2,data转字符串;3字符串进行加密;4,设置为HTTPBody

请求成功之后:jsonData转字符串,字符串解密,jsonStr转字典,返回!


当然:还有上传图片加密,也是一大难题,后来解决了.

上传图片:将图片转成base64字符串[一定不要忘记在前面拼接这一段字符串:data:image/jpeg;base64](你的图片是什么格式的就将jpeg改为什么格式),作为参数的value!后面就是数据请求的参数加密和返回解密了,跟上面的一样!

但是由于图片转base64的字符串会超级超级大,所以我先将图片裁小,然后再又压缩(不然传个参数都不知道要多久),然后就是讲一些特殊字符替换(这个是跟后台统一,看后台要怎么搞吧)

图片作为参数加密


demo中的key和iv需要自己设置,我的公司的没有贴出来(不方便)

传送门

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容