63

我对消息摘要的理解是,它是一些与加​​密数据一起发送的数据的加密哈希,因此您可以验证数据没有被篡改。那么这个和消息认证码(MAC)和哈希MAC(HMAC)有什么区别?

4

2 回答 2

105
  • 消息摘要算法采用单个输入 - 一条消息 - 并产生一个“消息摘要”(又名哈希),它允许您验证消息的完整性:对消息的任何更改都会(理想情况下)导致不同的哈希正在生成。可以替换消息和摘要的攻击者完全有能力用新的有效对替换消息和摘要。
  • MAC 算法接受两个输入——一个消息和一个密钥——并产生一个 MAC,它允许您验证消息的完整性真实性:对消息密钥的任何更改将(理想情况下)导致正在生成不同的 MAC。没有访问秘密的任何人都应该能够生成验证的 MAC 计算;换句话说,MAC 可用于检查 MAC 是否由有权访问密钥的一方生成。
  • HMAC 算法只是一种特定类型的 MAC 算法,它在内部使用哈希算法(而不是例如加密算法)来生成 MAC。
于 2010-09-12T22:38:52.430 回答
20
  • 消息摘要只是消息的散列。它是应用于输入数据的加密哈希函数的输出,称为消息
  • 消息验证码(MAC) 是证明消息完整性且不易被伪造的一条信息。
  • HMACRFC 2104定义的一种特定类型的 MAC 。

维基百科有涵盖所有这些术语的好文章:参见Message DigestMessage Authentication CodeHMAC

于 2010-09-12T22:15:08.243 回答