可执行文件 EXE 的 MD5 碰撞可能

学过信息类学科的肯定都对 MD5 算法并不陌生,但该种加密方式在 2005 年被中国 王小云 教授给出了碰撞,王教授也因此获得了求是杰出科学家奖和 100 万美金,但我仍旧天真的认为就算是找到 MD5 的碰撞又如何,你难得能让两个可执行程序的 MD5 相同却做不同的事情吗!但今天,看来是可以的!^_^

下面展示的两个程式就是两个 MD5 完全相同的 EXE 程序,可以看到虽然 SHA1 和 CRC32 都不相同,但他们的 MD5 是相同的,而且完全可以正常运行并在屏幕上打印不同的字符……

md5-collision-exe

结论: MD5 算法已不应再被用于任何软件完整性检查或代码签名的用途!

另外:如果仅仅是想要生成 MD5 相同而内容不同的任意普通文件的话,在任何主流配置的电脑上用几秒钟就可以完成了。

建议:采用多种 HASH 函数同时交叉校验。