加密解密(BASE64, MD5,DES,AES,RSA)

? ? ?通常一提到加密,大家往往瞬間就會(huì)在腦海中浮現(xiàn)出幾個(gè)詞:MD5,Base64,AES,DES......iOS的加密方式有很多種,下面我們首先對(duì)加密的種類來加以區(qū)分:

? ? ? ? ? ? 一:是否有秘鑰

? ? ? ? ? ?無秘鑰加密:Base64和MD5都是缺少加密方式的加密。Base64只是對(duì)數(shù)據(jù)進(jìn)行了格式的轉(zhuǎn)化,并且MD5的加密又是不可逆的(即無法通過解密來獲得原實(shí)體)。

? ? ? ? ? ? 有加密方式(秘鑰)的加密:主要包含對(duì)稱加密非對(duì)稱加密(加密方法下文有介紹)。在項(xiàng)目中真正一般用來加密數(shù)據(jù)的方式是有加密方式的加密,也就是有秘鑰的加密。這些加密后的數(shù)據(jù)都是可逆的,能夠根據(jù)秘鑰重新解密。

? ? ? ? ? ?二:是否對(duì)稱加密

? ? ? ? ? ?對(duì)稱加密:主要涉及到如AES,3DES等加密。此種加密的秘鑰在加密和解密的時(shí)候都是相同的。?

? ? ? ? ??非對(duì)稱加密:主要涉及到如RSA加密(或加簽),此種加密的秘鑰是不同的,分為公鑰和私鑰,在RSA加密時(shí),一般是把公鑰放在客戶端來加密,私鑰上傳 用來解密(RSA加簽則不同)。


? ? ? ? ?項(xiàng)目中的應(yīng)用:在項(xiàng)目的應(yīng)用中,大多采取對(duì)稱加密的方式(簡單易操作)來加密,如將數(shù)據(jù)AES加密并Base64轉(zhuǎn)碼后上傳到服務(wù)器,當(dāng)然了,服務(wù)器也可以對(duì)數(shù)據(jù) 加密后通過API調(diào)用傳給客戶端,具體實(shí)現(xiàn)方法要根據(jù)業(yè)務(wù)來選擇。 如果覺得還是不夠穩(wěn)妥,可以對(duì)稱加密和非對(duì)稱加密混合起來一起使用。也就是對(duì)對(duì)稱加密的秘鑰再來一次非對(duì)稱加密(如RSA),這樣可以是你的數(shù)據(jù) 在后臺(tái)與客戶端傳遞起來更加的安全可靠!當(dāng)然了,操作起來也會(huì)麻煩一些。

附錄: 應(yīng)用于iOS的RSA秘鑰證書生成起來比較麻煩一點(diǎn),我們在進(jìn)行RSA加密時(shí)需要獲取到公鑰的.der證書和私鑰的.p12證書,通過openssl命令即可完成操作,終端里已經(jīng)裝有openssl,所以直接通過終端即可操作。

下面的鏈接是證書生成指南,不明白的朋友可以看看。 生成證書網(wǎng)址:http://www.itdecent.cn/p/a1bad1e2be55

GitHub上的源碼地址:https://github.com/mszren/Secrectry

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

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

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