密码学/MD5
外观
< 密码学
MD5 是一个流行的哈希函数,被世界各地许多人使用。由麻省理工学院的罗纳德·李维斯特教授开发。
它有两个目的:
- 验证文件在特定时间段后的完整性
- 为特定数据(例如:文件)生成哈希值并存储它们,以便日后交叉检查文件是否被修改(这实质上是上面提到的第一点)
例如,在一个名为“SAMPLE.TXT”的系统上,MD5 哈希看起来像这样:
文件名 | 哈希值 |
---|---|
C:\SAMPLE.TXT | BC8FEFECA210FC0C0F3EBC1614A37889 |
MD5 接收任意长度的消息作为输入,并输出 128 位的“指纹”或“消息摘要”作为输出。据推测,在计算上不可能产生任何具有给定预先指定目标消息摘要的消息。MD5 算法最初用于数字签名应用,其中必须以安全的方式“压缩”大型文件,然后使用私钥(秘密)在公钥密码系统(如 RSA)下进行签名。但是,MD5 的抗碰撞性存在实际攻击[1],因此不应将其用于数字签名或任何其他需要抗碰撞性的应用程序。
确切的技术信息在 RFC:1321 (作为 HTML) 中描述。
- ↑ 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/