由于之前的項目中手機(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)一,看后臺要怎么搞吧)
