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

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

作者: WSKing的杂货铺 | 来源:发表于2017-08-25 18:02 被阅读403次

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

    传送门

    相关文章

      网友评论

          本文标题:iOS网络请求整个参数(字典)AES加密

          本文链接:https://www.haomeiwen.com/subject/ehcpdxtx.html