消息摘要,消息验证代码和HMAC之间有什么区别?

时间:2010-09-12 22:05:33

标签: security hmac message-digest

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

2 个答案:

答案 0 :(得分:88)

  • 消息摘要算法采用单个输入 - 消息 - 并生成“消息摘要”(也称为散列),允许您验证消息的完整性:对消息的任何更改(理想情况下)将导致生成不同的哈希。可以替换消息和摘要的攻击者完全有能力用新的有效对替换消息和摘要。
  • MAC算法接受两个输入 - 消息和密钥 - 并生成一个MAC,允许您验证消息的完整性:消息的任何更改< em>或秘密密钥将(理想地)导致生成不同的MAC。没有人可以访问该秘密应该能够生成验证的MAC计算;换句话说,MAC可用于检查MAC是否由有权访问密钥的一方生成。
  • HMAC算法只是一种特定类型的MAC算法,它在内部使用散列算法(而不是加密算法)来生成MAC。

答案 1 :(得分:16)

  • 消息摘要只是消息的哈希值。它是应用于输入数据的加密哈希函数的输出,称为消息
  • 消息验证码(MAC)是一条信息,可以证明邮件的完整性,不会轻易伪造。
  • HMAC RFC 2104定义的一种特定MAC。

Wikipedia包含涵盖所有这些术语的精彩文章:请参阅Message DigestMessage Authentication CodeHMAC