快速MD5碰撞生成器,MD5真的不可靠了.MD5用来去重和校验文件完整性已经不可靠了
来源:互联网 发布:软件开发团队组成 编辑:程序博客网 时间:2024/05/22 12:10
【本文系外部转载,原文地址:http://ywpc120.5d6d.com/thread-796-1-1.html】
早就有说法说MD5不可靠,可是一直没有可以快速的程序证明(一个运行N年的程序是没有实际意义的),现在有了.
快速MD5碰撞生成器
两个不同文件,MD5一样的例子:
http://www.win.tue.nl/hashclash/SoftIntCodeSign/HelloWorld-colliding.exe
http://www.win.tue.nl/hashclash/SoftIntCodeSign/GoodbyeWorld-colliding.exe
这几位密码学家编写的“快速 MD5 碰撞生成器”:
http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5.exe.zip
源代码:
http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5_source.zip
虽然这个生成器仅仅用于构造两个文件, MD5相同但内容不同,不是从MD5值逆推出的,但是说明MD5不可靠已经足以了.
至少MD5的应用领域要大打折扣了.
MD5真的已靠不住?同样校验,不同文件!
MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:
大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。
我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如 HashX 等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。
大家可以尽管试一下:比如建立一个TXT文件,随便打些什么进去。检验一遍MD5之后记录下来。然后对TXT稍作改动,再检验一遍。就可以发现,原来只要稍微不同,出来的MD5就已经是完全不一样的了。
这就是说,MD5校验的作用在于:可以知道自己从网络下载的文件,是否就是原发布者所提供的文件。很多人常抱怨使用迅雷下载的文件有问题,说到这里,相信大家已经明白,那是文件来源不一样了。以及有时候,发布者的网站可能被黑客入侵篡改,那么校验一番MD5,就可以知道是否曾被恶意植入病毒或木马了(如果网站服务器被入侵,通常发布者也不知情的)。
但是!从今天起,上述一切,已变得不可靠了!
原因在于两年前,王小云教授发布的破解算法开始,后来已经发展至可进行所谓的“MD5攻击”。
相关阅读:如何面对最强算法MD5被破译
老生常谈:从王小云教授成功破解MD5说起
下面要说的“MD5碰撞”,简而言之就是:先得出一个字符串的MD5值,再根据这个值,逆算出另外一个不同的字符串——但是它们的MD5检验值是完全一致的!
或许你会觉得,不同的字符串可以得出相同的MD5,也不算什么了不起的事情吧。这只不过是世上万千奇怪的数学题的一种而已。
但是!你可曾想过,有没有可能,让两个程序文件的MD5一致,却又都能正常运行,并且可以做完全不同的事情么?
答案是:还真的可以!
http://www.win.tue.nl/hashclash/SoftIntCodeSign/HelloWorld-colliding.exe
http://www.win.tue.nl/hashclash/SoftIntCodeSign/GoodbyeWorld-colliding.exe
这两个程序会在屏幕上打印出不同的字符,但是它们的MD5都是一致的。
通读其论文后摘要如下:
这几位密码学家使用的是“构造前缀碰撞法”(chosen-prefix collisions)来进行此次攻击(是王小云所使用的攻击方法的改进版本)。
他们所使用的计算机是一台 Sony PS3,且仅用了不到两天。
他们的结论:MD5 算法不应再被用于任何软件完整性检查或代码签名的用途。
另:现在,如果仅仅是想要生成 MD5 相同而内容不同的文件的话,在任何主流配置的电脑上用几秒钟就可以完成了。
这几位密码学家编写的“快速 MD5 碰撞生成器”:
http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5.exe.zip
源代码:http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5_source.zip
思考题:
为什么微软发布补丁程序的时候,所使用的校验方法,不是MD5,而是SHA-1呢?
阅读全文
0 0
- 快速MD5碰撞生成器,MD5真的不可靠了.MD5用来去重和校验文件完整性已经不可靠了
- 快速MD5碰撞生成器,MD5真的不可靠了.
- 快速MD5碰撞生成器,MD5真的不可靠了.
- 文件的MD5校验
- MD5碰撞和我眼中的MD5
- 通过MD5校验和验证MySQL软件包的完整性
- 【MD5】MD5校验文件的正确性
- MD5校验碰撞的概率是多少?
- 计算文件的MD5校验
- 关于MD5文件的校验
- MD5生成器源代码,写了几天呀....
- 【转帖】快速 MD5 碰撞生成器(王小云改进版)
- 用md5算法检测文件的完整性
- 基于md5的文件完整性检测
- md5算法 保证下载文件的完整性
- 用MD5验证上传文件的完整性
- Java文件的MD5校验和CRC校验
- iOS文件的MD5校验--大文件的MD5加密
- 负数在计算机中的二进制表示(原码、反码与补码)
- 接口的多继承跟抽象类的多实现
- android动画
- AJAX处理服务端的json数据
- Android SO文件的兼容和适配
- 快速MD5碰撞生成器,MD5真的不可靠了.MD5用来去重和校验文件完整性已经不可靠了
- Linux 常用命令
- RockChip MPP
- 有关compileSdkVersion、targetSdkVersion的笔记
- python MySQLdb Could not to connect MySQL server
- C++中指针初始化和使用注意事项
- 开发中仿IOS三级菜单,开源项目PickView实用自定义数据封装使用实例
- Session Fixation
- 解决Orcale in超过1000个时出现“”列表中的最大表达式数为 1000”这个异常的问题