文本

MD5 哈希计算

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


MD5

Tips

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

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

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

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

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