MD5
安全已被攻破的消息摘要算法
MD5(RFC 1321,1992)生成 128 位摘要,2004 年被王小云团队证实可构造碰撞,已不具密码学安全性,仅可用于非对抗性的完整性校验与缓存键。
历史与构造
MD5 由 Ronald Rivest(RSA 的 R)1991 年设计、1992 年发布为 RFC 1321,输出 128 位摘要。它继承 MD4 的 Merkle–Damgård 结构,速度快、实现简单,1990 年代无处不在(校验、密码存储、数字签名)。
碰撞攻击时间线
2004 年王小云、刘旭东等在国际密码学会议(Crypto 2004)宣布 MD5 全碰撞攻击,震动学界;2008 年 CAcert 伪造根证书实证;2012 年 Flame 蠕虫正是用 MD5 碰撞伪造微软代码签名证书。SHA-1(更晚,2017 年 SHAttered)同样倒下,两者都不再用于安全用途。
还能用在哪
下载文件完整性校验(对抗传输损坏,不防蓄意篡改)、去重指纹、分片索引等无对抗者场景仍常见。密码存储必须用 bcrypt/scrypt/Argon2(加盐 + 慢哈希),绝不可 MD5——即使加盐,GPU 暴力破解速度也太快。防篡改校验选 SHA-256。