百度:都可以認證原發性,完整性。但感覺消息認證碼由於兩端都有會話密鑰並不能驗證原發性。
- MAC消息認證碼:對原文hash產生摘要值后,用會話雙方的對稱會話密鑰加密摘要,算法為現有的對稱算法,如DES。獲取MAC值。
- HMAC消息認證碼:特定的mac算法,稱為HMAC,在計算hash時傳入密鑰。獲取MAC值。
- 數字簽名:消息發送者對原文計算hash,用公鑰加密摘要。
校驗
- 校驗消息認證碼:用會話密鑰(解密或)還原摘要,驗證消息完整性。
- 校驗數字簽名:接受者本身就有發送消息者的公鑰,用公鑰解密出摘要。計算原文摘要,驗證是否匹配。
注:簽名與驗證碼都沒有對原文加密,只是為了保證消息沒有被篡改而對摘要加密。相當於蓋章。