PHP服務(wù)端與客戶端交互或者提供開放API時,通常需要對敏感的數(shù)據(jù)進行加密,這時候rsa非對稱加密就能派上用處了。

舉個通俗易懂的例子,假設(shè)我們再登錄一個網(wǎng)站,發(fā)送賬號和密碼,請求被攔截了。

  • 密碼沒加密,那攻擊者就直接拿到了密碼,這是最搓的。

  • 密碼加密了,是不可逆加密,那攻擊者只需要模擬那個請求即可登錄。

  • 密碼加密了,是可逆加密,其中攜帶有時間等參數(shù),后臺可以根據(jù)時間等參數(shù)來判斷是否有效,但因為是在前端加密,其加密方式也能在代碼中找到,找到加密方式就可以得出解密方式。

但是如果我們使用非對稱加密就可以避免以上問題。

非對稱加密算法需要兩個密鑰來進行加密和解密,這兩個秘鑰是公開密鑰(public key,簡稱公鑰)和私有密鑰(private key,簡稱私鑰)。

工作過程如下,甲乙之間使用非對稱加密的方式完成了重要信息的安全傳輸。

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動開發(fā)培訓(xùn)

  • 乙方生成一對密鑰(公鑰和私鑰)并將公鑰向其它方公開。

  • 得到該公鑰的甲方使用該密鑰對機密信息進行加密后再發(fā)送給乙方。

  • 乙方再用自己保存的另一把專用密鑰(私鑰)對加密后的信息進行解密。乙方只能用其專用密鑰(私鑰)解密由對應(yīng)的公鑰加密后的信息。

在傳輸過程中,即