MD5 哈希计算

在浏览器中实时计算输入字符串的 MD5 哈希值。常用于文件完整性校验和字符串唯一标识,但由于碰撞攻击已被证实,不推荐用于安全场景。


Tips

  • MD5 于 1991 年设计,输出 128 位(32 个十六进制字符),2004 年碰撞攻击被实证。
  • 常用于文件完整性校验,例如校对下载文件是否与官方发布的哈希值一致。
  • 现代 GPU 每秒可计算数百亿次 MD5,极不适合用于密码存储
  • 输出为固定 128 位、32 个字符的十六进制字符串,无论输入长度如何。
  • 存储密码时请使用 BCrypt 或 Argon2 等专用慢哈希算法,而非 MD5。

常见问题

不能。MD5 是单向函数,无法从哈希值推算出原始输入。但对于短字符串或常见密码,攻击者可通过彩虹表查表破解,因此 MD5 不适合用于密码保护。

是的,MD5 具有确定性:相同输入始终产生相同输出。哪怕只有一个字符、大小写或空格不同,输出哈希也会完全不同。

对于不涉及安全的简单校验(如检测文件传输中的意外损坏),MD5 完全够用。涉及安全的场合请选择 SHA-256,目前尚无针对它的碰撞攻击被证实。
ツールくん

闲话 ― MD5 的发明者与"被破解"算法的轨迹

MD5 由罗纳德·李维斯特(Ronald Rivest,RSA 算法联合发明者)设计,并于 1992 年作为 RFC 1321 发布。2004 年,中国密码学家王小云等人成功实证碰撞攻击,彻底动摇了 MD5 作为安全工具的地位。

2008 年,安全研究人员利用 MD5 碰撞伪造了 SSL 证书,证明攻击者可借此冒充合法 HTTPS 网站,引发行业广泛关注。这一事件直接推动了证书颁发机构停止签发基于 MD5 的证书。

如今,MD5 仍活跃于校验和场景(如软件包完整性验证),因为在此类用途中并不需要防御恶意碰撞攻击。而在密码存储、数字签名等安全领域,MD5 已被主流实践完全淘汰。