MD(消息摘要)、MAC(消息認證碼)、數字簽名的區別


MD(消息摘要)、MAC(消息認證碼)、數字簽名的區別

1.MD(消息摘要)

1.1摘要含義

摘要

摘要是哈希值,我們通過散列算法比如MD5算法就可以得到這個哈希值。

摘要只是用於驗證數據完整性和唯一性的哈希值,不管原始數據是什么樣的,得到的哈希值都是固定長度的。

不管原始數據是什么樣的,得到的哈希值都是固定長度的,也就是說摘要並不是原始數據加密后的密文,只是一個驗證身份的令牌。所以我們無法通過摘要解密得到原始數據。

2.MAC(消息認證碼)

hash算法只能驗證數據的完整性,不能防止數據被篡改。比如:遇見中間人攻擊,你會發現攻擊者對消息進行篡改了,但是通過hash算法計算摘要值,你是無法知道消息被改動過的。因此這個時候就需要MAC算法了。

MAC值 = mac(消息+密鑰)

2.2MAC的特點

跟hash算法一樣,可以驗證數據的完整性。

可以驗證數據確實是由原始發送方發出的。

MAC值一般和原始消息一起傳輸,原始消息可以選擇加密,也可以選擇不加密,通信雙方會以相同的方式生成MAC值,然后進行比較,一旦兩個MAC值相同表示MAC驗證正確,否則驗證失敗。

3.數字簽名

MAC不能保證消息的不可抵賴性,而數字簽名可以保證。

因為數字簽名使用的是公鑰密碼體制,私鑰只有你自己才知道;而MAC使用對稱加密,既然一方能夠驗證你的MAC,就能夠偽造你的MAC,因為發送方和接收方的秘鑰是一樣的。當然如果你在MAC中綁定一些關鍵信息,並通過某些手段,讓一方只能生成MAC,另一方只能驗證MAC,其實也是可以實現簽名效果的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM