加密、解密、驗(yàn)簽【附iOS端demo】

個(gè)人搭建的博客,歡迎訪問:
https://www.pphtc.com/work.html
iOS端demo,對(duì)加密、解密驗(yàn)簽進(jìn)行了封裝:
https://github.com/1552612373/YCSecurity

數(shù)據(jù)傳輸安全解決方案:加密解密和驗(yàn)簽

公鑰加密,私鑰解密。私鑰簽名,公鑰驗(yàn)簽。


非對(duì)稱加密(比如RSA):

簡(jiǎn)單解釋:加密解密用的是不同的密鑰,實(shí)際上是一對(duì)密鑰,即公鑰、私鑰。

特點(diǎn):加密解密速度較慢,但更加安全。


對(duì)稱加密(比如AES):

簡(jiǎn)單解釋:加密解密用的是同一密鑰。

特點(diǎn):加密解密速度快。


常用思路:

加密
  1. 用AES(對(duì)稱加密)報(bào)文,因?yàn)閳?bào)文可能很大,對(duì)稱加密速度快。
  2. 然后用RSA私鑰 對(duì)AES的密鑰進(jìn)行加密。此步驟,對(duì)方解密的數(shù)據(jù)其實(shí)是AES等密鑰,大小有限,所以對(duì)速度要求不大。
  3. 再對(duì)密文加上驗(yàn)證簽名比如hmac,為的目的是進(jìn)一步驗(yàn)證身份。(hmac的密鑰也用aes加密后傳輸)
  4. 對(duì)以上數(shù)據(jù)等拼起來進(jìn)行傳輸。
解密
  1. 接收方先通過RSA公鑰解出AES的密鑰 和 hmac的密鑰。
  2. 然后再用AES的密鑰解密得到明文
  3. 對(duì)密文用hmac的key進(jìn)行簽名,進(jìn)行對(duì)比,一致則驗(yàn)簽通過,身份合法。

無論是服務(wù)端或是客戶端,都可以用此方式進(jìn)行加密解密。

雙方協(xié)商后只需要有兩對(duì)RSA公鑰私鑰,分別用來加密解密。

注意:私鑰絕不能外泄!

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

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