原来我总是很自信地以为:你有本事找到 MD5 的碰撞又如何?你难道还有本事让两个可执行文件的 MD5 一样,却又都能正常运行,并且可以做完全不同的事情么?
答:还真的可以.

这两个程序会在屏幕上打印出不同的字符,但是它们的 MD5 都是一样的。

通读其论文后摘要如下:
这几位密码学家使用的是“构造前缀碰撞法”(chosen-prefix collisions)来进行此次攻击(是王小云所使用的攻击方法的改进版本)。
他们所使用的计算机是一台 Sony PS3,且仅用了不到两天。
他们的结论:MD5 算法不应再被用于任何软件完整性检查或代码签名的用途。

另:现在,如果仅仅是想要生成 MD5 相同而内容不同的文件的话,在任何主流配置的电脑上用几秒钟就可以完成了。
这几位密码学家编写的“快速MD5碰撞生成器”:

04年8月的一天,名不见经传的山东大学教授王小云(人家导师可是潘承洞噢!)冲上California Santa Barbara国际密码大会讲台强行公布了一个结果,宣告给了世界一个信不信由你的故事。
据说,可以通过填充的方法使得两只鸭子完全一样大,而且鸭子妈妈都分不出来哦。
那么,这过程是每个人都能做的么?答曰,还不行,必须是有经验的填鸭师傅用很好很强大的工具在几小时内才能搞定。
哇哈哈,那还好,MD5还算安全吧~
实践再一次表明,预言未来的人总会自取其辱。科学家的脑袋不是线性,也不是函数能够表述的,其实,人脑性能曲线是超越数的偏微分方程,信不信也由你。现在有人给出了反例,看来MD5用来验证EXE程序没被篡改这一应用是不行了,那么,离大面积的MD5密码生成器还有多远呢?
跑题了,说点正经的。MD5的价值相比大家都清楚,绝大部分的网站使用MD5加密用户信息的密码。一旦MD5的伪装或者逆转破解(这好像不可能,hash之后熵值太大了)能够在平常的PC上完成,我们的信息就都完蛋了,只要在局域网上侦听一下,你就可以拿到你的同学或者同事的一切一切哦~

世界是透明的其实也挺好。