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

2017-08-25  本文已影响403人  WSKing的杂货铺

由于之前的项目中手机短信各种被刷,所以后台决定将数据请求以及返回的数据加密,本来以为只是将参数的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需要自己设置,我的公司的没有贴出来(不方便)

传送门

上一篇下一篇

猜你喜欢

热点阅读