移動(dòng)端接口非對稱加密和簽名方案

前言

前幾天在和幾個(gè)技術(shù)朋友聊天的時(shí)候聊到了關(guān)于加密解密和加簽驗(yàn)簽的過程,發(fā)現(xiàn)自己雖然略知一二,但是對具體細(xì)節(jié)還是不怎么了解,還是需要總結(jié)一下。

1. 加密

加密是為了保證數(shù)據(jù)傳輸?shù)陌踩浴?/p>

非對稱性加密:

非對稱加密算法需要兩個(gè)密鑰:公開密鑰publickey:簡稱公鑰)和私有密鑰(privatekey:簡稱私鑰)。公鑰與私鑰是一對,如果用公鑰對數(shù)據(jù)進(jìn)行加密,只有用對應(yīng)的私鑰才能解密。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法叫作非對稱加密算法。 非對稱加密算法實(shí)現(xiàn)機(jī)密信息交換的基本過程是:甲方生成一對密鑰并將公鑰公開,需要向甲方發(fā)送信息的其他角色(乙方)使用該密鑰(甲方的公鑰)對機(jī)密信息進(jìn)行加密后再發(fā)送給甲方;甲方再用自己私鑰對加密后的信息進(jìn)行解密。甲方想要回復(fù)乙方時(shí)正好相反,使用乙方的公鑰對數(shù)據(jù)進(jìn)行加密,同理,乙方使用自己的私鑰來進(jìn)行解密。

2. 簽名

簽名是為了保證數(shù)據(jù)傳輸過程中不被篡改。

3.圖解
  • 移動(dòng)端:
    移動(dòng)端大體分為兩個(gè)數(shù)據(jù)一部分是簽名,另一部分是需要傳輸?shù)臄?shù)據(jù)。
    我們對傳輸數(shù)據(jù)和本地private_key進(jìn)行組合然后進(jìn)行摘要算法(MD5)生成簽名。
    對傳輸內(nèi)容數(shù)據(jù)用公鑰進(jìn)行加密。
移動(dòng)端
  • 服務(wù)端:
    服務(wù)端拿到被公鑰加密的傳輸數(shù)據(jù),然后用私鑰進(jìn)行解密拿到所需要的數(shù)據(jù)內(nèi)容。
    服務(wù)端拿到解密后的傳輸數(shù)據(jù)和private_key進(jìn)行和移動(dòng)端相同的組合然后進(jìn)行摘要算法生成簽名串在去和拿到的sign進(jìn)行對比,如果相同則表示數(shù)據(jù)沒有被篡改。
    服務(wù)端
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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