PHP服務(wù)端與客戶端交互或者提供開放API時,通常需要對敏感的數(shù)據(jù)進行加密,這時候rsa非對稱加密就能派上用處了。
舉個通俗易懂的例子,假設(shè)我們再登錄一個網(wǎng)站,發(fā)送賬號和密碼,請求被攔截了。
密碼沒加密,那攻擊者就直接拿到了密碼,這是最搓的。
密碼加密了,是不可逆加密,那攻擊者只需要模擬那個請求即可登錄。
密碼加密了,是可逆加密,其中攜帶有時間等參數(shù),后臺可以根據(jù)時間等參數(shù)來判斷是否有效,但因為是在前端加密,其加密方式也能在代碼中找到,找到加密方式就可以得出解密方式。
但是如果我們使用非對稱加密就可以避免以上問題。
非對稱加密算法需要兩個密鑰來進行加密和解密,這兩個秘鑰是公開密鑰(public key,簡稱公鑰)和私有密鑰(private key,簡稱私鑰)。
工作過程如下,甲乙之間使用非對稱加密的方式完成了重要信息的安全傳輸。
乙方生成一對密鑰(公鑰和私鑰)并將公鑰向其它方公開。
得到該公鑰的甲方使用該密鑰對機密信息進行加密后再發(fā)送給乙方。
乙方再用自己保存的另一把專用密鑰(私鑰)對加密后的信息進行解密。乙方只能用其專用密鑰(私鑰)解密由對應(yīng)的公鑰加密后的信息。
在傳輸過程中,即