什么是MD5碰撞
MD5 相同的情况叫做“碰撞”,现在网络中已经出现了两个相同的 MD5 可执行文件。
MD5碰撞的危害
一些网盘使用的是 MD5 的方式来验证文件是否已经被上传过,如果上传过就直接告诉用户上传过就好了,也就不用再次上传去占用而外的空间,假设 Win100 现在发布了,我马上就构造一个假的包含病毒的但是 MD5 和官方镜像相同的安装镜像放置到 A 网盘,A 网盘使用 MD5 验证数据是否相同,那么现在的问题就是,用户下载的全部都是我制作的光盘,而非微软官方的。当然,这种构造的方法仍然是非常高级的东西,不是很容易能够做到的。
除此之外,一些语言对字符串的处理时碰到0e开头的时候会自动转化为0为底,之后为幂的科学计数法。(如PHP),利用这一特性,可以绕过md5函数。
0e开头的md5和原值:
QNKCDZO
0e830400451993494058024219903391
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404