跳转到内容

密码学/MD5

来自维基教科书,自由的教科书,为了一个开放的世界

MD5 是一个流行的哈希函数,被世界各地许多人使用。由麻省理工学院的罗纳德·李维斯特教授开发。

它有两个目的:

  1. 验证文件在特定时间段后的完整性
  2. 为特定数据(例如:文件)生成哈希值并存储它们,以便日后交叉检查文件是否被修改(这实质上是上面提到的第一点)

例如,在一个名为“SAMPLE.TXT”的系统上,MD5 哈希看起来像这样:

文件名 哈希值
C:\SAMPLE.TXT BC8FEFECA210FC0C0F3EBC1614A37889

MD5 接收任意长度的消息作为输入,并输出 128 位的“指纹”或“消息摘要”作为输出。据推测,在计算上不可能产生任何具有给定预先指定目标消息摘要的消息。MD5 算法最初用于数字签名应用,其中必须以安全的方式“压缩”大型文件,然后使用私钥(秘密)在公钥密码系统(如 RSA)下进行签名。但是,MD5 的抗碰撞性存在实际攻击[1],因此不应将其用于数字签名或任何其他需要抗碰撞性的应用程序。

确切的技术信息在 RFC:1321 (作为 HTML) 中描述。

参考资料

[编辑 | 编辑源代码]
  1. 1Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik, Benne de Weger: MD5 considered harmful today - Creating a rogue CA certificate http://www.win.tue.nl/hashclash/rogue-ca/
华夏公益教科书