2004年,王小云及其同事公布了首批 MD5 碰撞;2007年,Stevens、Lenstra 和 de Weger 使选择前缀碰撞变得切实可行;2008年,一个团队利用这种碰撞,从一家仍在用 MD5 签名的商业 CA 那里获得了一张伪造的中间 CA 证书。Flame 恶意软件(2012年)利用 MD5 选择前缀碰撞伪造了一张 Microsoft 代码签名证书。如今在笔记本电脑上几秒钟就能找到碰撞。
RFC 6151(2011年)规定,在需要抗碰撞性的场合不得使用 MD5;RFC 9155 从 TLS 1.2 中移除了 MD5 签名。HMAC-MD5 以及在非对抗场景中把 MD5 用作校验和(检测意外损坏、用作缓存键)并没有以同样的方式被攻破,但新设计没有理由选择 MD5,因为在现代 CPU 上 SHA-256 往往更快(在 Apple M4 Max 的单个核心上,OpenSSL 3.6.5 计算 MD5 的速度约为 0.86 GB/s,SHA-256 为 2.85 GB/s)。