1、加密算法:對原來為明文的文件或數據按某種算法進行處理,使其成為不可讀的一段代碼
- 對稱加密:加密和解密使用同一個密鑰
- 非對稱加密:加密和解密所使用的不是同一個密鑰,通常稱為“公鑰”和“私鑰”,公鑰和私鑰可以互相解密
- 簽名時,使用私鑰加密,公鑰解密,用於讓所有公鑰所有者驗證私鑰所有者的身份並且用來防止私鑰所有者發布的內容被篡改.但是不用來保證內容不被他人獲得,保證了數據的唯一性。
- 加密時,用公鑰加密,私鑰解密,用於向公鑰所有者發布信息,這個信息可能被他人篡改,但是無法被他人獲得,保證了數據的安全性。
2、數字簽名: 非對稱加密算法與數字摘要技術的應用
非對稱密鑰加密: RSA 、ECC等,依賴密鑰長度來提高安全性,
數字摘要:將任意長度的消息變成固定長度的短消息, 常用的加密算法包括 HASH (MD5 、SHA1 、SHA256)、HMAC(HmacMD5/HmacSHA1/HmacSHA256)等,安全性按顏色區分紅色安全性高,綠色安全性高
3、一般使用過程:
環境:A 的 公鑰公開,私鑰保密 ,同理B一樣 ,A 和 B都使用同樣的摘要算法 HASH
- A 給 B 發送一段數據 data ,首先 A 使用 HASH 算法生成 data 的數字摘要 digestA ,然后利用 A 的私鑰對數字摘要 digestA 進行加密生成 digestEncodeA ,然后將 data 和 digestEncodeA 一起發送給 B
- B 收到 A 發過來的 data 和 digestEncodeA 以后,首先使用 HASH 算法生成 data 的數字摘要 digestB ,然后用 A的公鑰對 digestEncodeA 進行解密得到數字摘要 digestDecodeB,然后如果 digestB = digestDecodeB ,那么標明data 是由A發送過來的 ,否則不是
同理,B 如果要發送回執,就在循環執行上面的步驟即可
4、總結: 數字摘要驗證了原文是否被篡改、公鑰私鑰保證了數字摘要的安全性,兩者配合使用安全性高,速度快