文章开头先说明:这个不是什么新闻了,大概是08年的事。最近突然看到一些言论,才又想起了这么一回事。拿出来做文章只是当做科普,因为好多人都还不了解这么一回事。那我就科普一回,给各位介绍一下。
如果你还不知道什么是MD5
MD5即Message-Digest Algorithm 5(资讯-摘要演算法 5),用于确保资讯传输完整一致。 是电脑广泛使用的杂凑演算法之一(又译摘要演算法 、哈希演算法),主流程式語言普遍已有MD5实做。是电脑广泛使用的杂凑演算法之一(又译摘要演算法 、哈希演算法),主流程式语言普遍已有MD5实作。
维基百科的解释:http://zh.wikipedia.org/wiki/MD5
百度百科的解释:http://baike.baidu.com/view/7636.htm
简而言之,设计MD5的初衷,就是使每一个文件有不同的MD5,用于辨别和鉴定。
如果你在网上下载文件有留意过,就会发现MD5的踪迹。不仅如此,MD5还被广泛的运用于加密和验证。比如我们的wordpress,在处理用户密码的时候也用到了MD5。不过过程更复杂一些。
如果你知道了,但是却不明白MD5有什么用
如果A与B要通过网络传送文件,那么A可以把文件的MD5计算以后告诉B,再传送文件。B收到文件以后,也计算一次MD5。如果计算结果与A告知的一致,那么文件在传输过程中没有被篡改。当然,更常用的办法是:A与B事先约定一个密码,然后把文件用密码加密。加密后A计算MD5并告知B,同时发送加密后的文件。这样就算MD5值在A发往B的途中被篡改,也不能达到中间人攻击的效果。
当然,MD5还有更广泛的用途。
如果你明白了以上的内容,那么
你应该明白,MD5的设计初衷是:对于两个不同的文件而言,MD5应该是不同的。
但是事事无绝对,虽然在数学上,MD5是不能反推的,但是却能够以其他方式达到相同的效果,比如碰撞。
什么是碰撞
所谓碰撞,就是已知一个文件或者数据,构造另一个与其MD5值一样的文件或数据。
MD5推出至今已经有不少年了,但却一直没有更新。早在07年,就有人提出了MD5碰撞的可能。而这种可能,到了08年变为了现实。
由于涉及隐秘性,所以大多数研究机构都并未放出其最新的研究成果。各国的MD5碰撞计划究竟如何,我们也便不得而知。
也或许因为MD5已经岌岌可危,所以专家们便失去了对他的研究兴趣?
不久以前,已经有机构宣布成功的破解了数字证书的认证,能够对数字证书进行仿冒。而该组织也宣称,安全起见,所有实验数据均已销毁。仅保留了部分理论性的论文。
如果你对理论没有兴趣,下面是实践
解开以后只有一个可执行程序,需要在命令行运行。
首先,reizhi创建了一个txt,内容如下:
然后打开命令行,运行碰撞程序
上面显示出来的一长串数字就是输入文件的MD5了。下面显示,仅仅用了15.859s就完成了碰撞。
生成了1_msg1.txt和1_msg2.txt两个文件。打开看看就知道了。
一样吗?一眼就看出来了,肯定不一样,而且不一样的地方还不少。
那再看看MD5
一样吗?当然是一样的,都说是MD5碰撞了。不过,MD5碰撞,CRC和SHA-1当然不会一样,这个我就不检验了。
各位有兴趣就自行下载检验好了。
结论
呵呵,看到这各位肯定不用我来下结论了。MD5已经不够安全了,如果仍然只使用MD5那么肯定是很危险的一件事情。
而报告也指出,SHA-1的安全性也不够,能够在可接受的时间内被碰撞。
这些,就让那些专业人士去争吧,我们了解一下也就够了。
不过现在主流的破解MD5方式还是用暴力破解法。即穷举。此种方法对于弱密码很有效,不过要是你的密码足够强壮,也就不怕了。
附上两个MD5加解密的网站
应证了一句话:没有永远的安全,也没有永远打不开的锁,更没有永远解不了的密
@stone, 恩,这话有道理
一般都是三种一起来检验。
@泡面, 要想MD5一样,大小又完全一样,现在还办不到
呵呵,俺OUT了,不清楚有这种方法
@Firm, [yangcongtou::face149.gif]看来还真是科普
听说过,但不用过多担心。
@zwwooooo, [yangcongtou::face149.gif]在你不担心的时候,技术又进步了
MD5不安全了,那什么是最安全的呢?
@秦大少, [yangcongtou::face048.gif]没有绝对安全
不过微软现在MSDN发布都是用SHA-1
[yangcongtou::face001.gif]你的网站的评论中,要是有个引用就好了。。免得我还得复制,粘贴。
没有永远的安全,也没有永远打不开的锁,更没有永远解不了的密。。。这句话非常敬佩。
@歪歪, [yangcongtou::face021.gif]不是嵌套就行了么,还引用
真高级[yangcongtou::face019.gif]
没有绝对安全的东西,包括地球~
@羽中, [yangcongtou::face014.gif]春节请注意安全