我在做基于php的網站開發。
我不知道使用非對稱加密時如何讓服務器給客戶端發送客戶端可以正確解密的加密資訊。
比如如果我們是讓客戶端(瀏覽器)發送給服務器加密資訊的話(比如用戶輸入ID和密碼進行登錄操作),那么客戶端有一份公鑰,服務器端有公鑰和密鑰,客戶端通過公鑰加密資訊發送給服務器后,服務器端可以通過密鑰解密。這個我想我沒有錯吧。
但是如果反過來,應該怎么辦呢?
如果讓客戶端(瀏覽器)直接持有密鑰的話,這豈不是非常不安全?
另外還有一點就是我很久沒有做基于php的網站開發了,這里應該用哪種加密手段好呢?有人說直接用https就可以。如果確實如此的話,請問有沒有一個利用https加密和解密的例子讓我看一下?
謝謝!
uj5u.com熱心網友回復:
這個加密是用來確保傳輸程序的安全性的 不是用來做客戶端合法性判斷的uj5u.com熱心網友回復:
1.服務端隨機生成公私鑰對(公鑰 pk1,私鑰 pk2),并將公鑰 pk1 傳給客戶端。(注意:此時能截獲 pk1)
2.客戶端隨機生成公私鑰對(公鑰 pk11,私鑰 pk22),并將公鑰 pk11,通過 pk1 加密,傳給服務端。
(注意:此時能截獲密文,也知道是通過 pk1 加密的,但由于不知道私鑰 pk2,是無法解密的)
3.服務端收到密文,用私鑰 pk2 解密,得到 pk11。
4 服務端隨機生成對稱加密密鑰 key=X,用 pk11 加密,傳給客戶端。
(注意:同理,黑客由密文無法解密出 key)
5 客戶端收到密文,用私鑰 pk22 解密,可到 key=X。
6 客戶端與服務端使用上面生成的對稱加密秘鑰進行通信。
再加上簽名驗證
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/283538.html
標籤:HTML(CSS)
上一篇:分頁怎么實作,啊啊啊?
