iOS網(wǎng)絡(luò)請求整個參數(shù)(字典)AES加密

由于之前的項目中手機(jī)短信各種被刷,所以后臺決定將數(shù)據(jù)請求以及返回的數(shù)據(jù)加密,本來以為只是將參數(shù)的value加密,結(jié)果后臺為了自己方便,要把整個參數(shù)體加密,所以,原本封裝的AFN就沒辦法用了,很尷尬,所以決定自己重新封裝咯.

首先封裝AES加密

我采用的是AES128,kCCOptionPKCS7Padding.網(wǎng)上也很多相關(guān)的例子,不多做介紹.

然后我又將AES又進(jìn)行了一次封裝:先base64加密,然后AES加密.當(dāng)然解密反過啦就行了!

后面我會將demo貼出來,直接看代碼更清楚.

然后是數(shù)據(jù)請求封裝

數(shù)據(jù)請求使用的是post請求,原生的NSURLSession封裝.參數(shù)加密的過程無非是:1,參數(shù)字典轉(zhuǎn)NSData;2,data轉(zhuǎn)字符串;3字符串進(jìn)行加密;4,設(shè)置為HTTPBody

請求成功之后:jsonData轉(zhuǎn)字符串,字符串解密,jsonStr轉(zhuǎn)字典,返回!


當(dāng)然:還有上傳圖片加密,也是一大難題,后來解決了.

上傳圖片:將圖片轉(zhuǎn)成base64字符串[一定不要忘記在前面拼接這一段字符串:data:image/jpeg;base64](你的圖片是什么格式的就將jpeg改為什么格式),作為參數(shù)的value!后面就是數(shù)據(jù)請求的參數(shù)加密和返回解密了,跟上面的一樣!

但是由于圖片轉(zhuǎn)base64的字符串會超級超級大,所以我先將圖片裁小,然后再又壓縮(不然傳個參數(shù)都不知道要多久),然后就是講一些特殊字符替換(這個是跟后臺統(tǒng)一,看后臺要怎么搞吧)

圖片作為參數(shù)加密


demo中的key和iv需要自己設(shè)置,我的公司的沒有貼出來(不方便)

傳送門

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容