在了解前端安全知識的時候,想進一步了解數(shù)據(jù)傳遞過程中如何進行加密更安全,看到了關于公鑰(yue四聲)和私鑰的問題。
非對稱的好處
- 在客戶端和服務端用的是同一套加解密機制,那么當一方不小心泄露了這個秘密,那服務端也就被攻破了
- 在客戶端使用JS進行加密的話就太明顯了,因為前端的透明性,不能保證加密的安全性
加密的流程
- 客戶端A大想給服務端B君寫一封信,信封中還夾帶了10塊錢用來還B君的上次的早餐費,小偷C偶然間知道A大信封中有10元想要劫持一波,果不其然,因為信封就用膠水封封而已,所以小偷C如其所愿偷到了10塊錢。A大、B君只能在家無奈,因為自己的疏忽。
- 又有一天A大想將B君還他上次要B君代購的手表,因為路途遙遠還是只能送快遞,這次A大有所警惕,上次只是丟了10元,這次再丟就是一塊表了??!所以A大決定先寄一個神奇的保險箱給B君。這個保險箱很神奇,誰都可以用這個保險箱的公共的鑰匙對其進行上鎖,但是只有A大手上的私人鑰匙才可以對他進行解鎖
- A大將這個沒上鎖的保險箱和公鑰發(fā)給B君
- B君收到保險箱后將手表放進去,然后用公鑰進行上鎖
- 運送過程中即使被人發(fā)現(xiàn)也沒關系,反正公鑰不能解鎖,只有A大手上的私鑰要能解鎖
- A大收到后就用私鑰解鎖獲得手表一枚
問題
- 怎么區(qū)分這個保險箱?
畢竟人口眾多,說不定一堆人都找了B君買手表呢,所以要保證每個保險箱的獨立性,這里就用到一個簽名的功能
// 先寫這么多先,主要是了解非對稱加密的過程,為什么會需要2把鑰匙等
--17.9.11