更新

具有讽刺意味的是,在我发布前一个答案后的几个星期,两位中国研究人员,陶燮和邓国峰,published a new single-block collision for MD5 . 直到现在我还没有意识到那篇论文 . 单个MD5块意味着输入大小为64字节或512位 . 请注意,输入大多相同, differing only in 2 bits .

他们的方法将在2013年1月之前公布,但现在可以使用论文中的数字来验证它们的碰撞:

>>> from array import array

>>> from hashlib import md5

>>> input1 = array('I', [0x6165300e,0x87a79a55,0xf7c60bd0,0x34febd0b,0x6503cf04,

0x854f709e,0xfb0fc034,0x874c9c65,0x2f94cc40,0x15a12deb,0x5c15f4a3,0x490786bb,

0x6d658673,0xa4341f7d,0x8fd75920,0xefd18d5a])

>>> input2 = array('I', [x^y for x,y in zip(input1,

[0, 0, 0, 0, 0, 1<<10, 0, 0, 0, 0, 1<<31, 0, 0, 0, 0, 0])])

>>> input1 == input2

False

>>> md5(input1).hexdigest()

'cee9a457e790cf20d4bdaa6d69f01e41'

>>> md5(input2).hexdigest()

'cee9a457e790cf20d4bdaa6d69f01e41'

但是,如果你有更多的空间可以玩,几千字节的碰撞可以更快地计算 - 它们可以在几小时内在任何常规计算机上计算 .

老答案

之前的最短碰撞使用了至少两个MD5块的输入值 - 即128字节,1024位 . 第一个块中的前缀可以由攻击者任意选择,其余的将被计算并显示为乱码 .

这是两个不同碰撞输入的示例,您可以在Python中自己尝试:

>>> from binascii import unhexlify

>>> from hashlib import md5

>>> input1 = 'Oded Goldreich\nOded Goldreich\nOded Goldreich\nOded Go' + unhexlify(

... 'd8050d0019bb9318924caa96dce35cb835b349e144e98c50c22cf461244a4064bf1afaecc582'

... '0d428ad38d6bec89a5ad51e29063dd79b16cf67c12978647f5af123de3acf844085cd025b956')

>>> len(input1)

128

>>> md5(input1).hexdigest()

'd320b6433d8ebc1ac65711705721c2e1'

>>> input2 = 'Neal Koblitz\nNeal Koblitz\nNeal Koblitz\nNeal Koblitz\n' + unhexlify(

... '75b80e0035f3d2c909af1baddce35cb835b349e144e88c50c22cf461244a40e4bf1afaecc582'

... '0d428ad38d6bec89a5ad51e29063dd79b16cf6fc11978647f5af123de3acf84408dcd025b956')

>>> md5(input2).hexdigest()

'd320b6433d8ebc1ac65711705721c2e1'

在215节点的Playstation 3集群上生成这两个特定输入需要2天,by Mark Stevens :)

md5碰撞Java_什么是导致MD5碰撞的最短字符串?相关推荐

  1. MD5流程以及安全性分析,MD5加盐,MD6,笔记

    版权归其所有论文作者所有. 并没写原始的地址,因为这是我整合的,作者太多,包括我.太匆忙,原作者可以联系我. 简介 MD5适用于数据完整性校验的.将任意长度的字节串(所以是基于底层的二进制串的),映射 ...

  2. MD5科普(二):MD5算法详解/如何改进MD5算法?

    原文链接:https://www.6zou.net/tech/md5_how_to_do.html 一.MD5算法的实现 MD5算法简述: MD5是输入不定長度信息,输出固定長度128-bits的演算 ...

  3. MD5有哪些特性,常用的MD5加密安全吗

    在密码学中,MD5是比较常用的算法之一.大家都知道MD5曾一度被认为十分安全,并且在国内外得到广泛适用.然而,王小云教授的研究证明利用MD5算法的磕碰能够严重威胁信息体系安全,因此引发了密码学界的轩然 ...

  4. java md5加密 jar包_练习MD5加密jar包编写

    简介 参数签名可以保证开发的者的信息被冒用后,信息不会被泄露和受损.原因在于接入者和提供者都会对每一次的接口访问进行签名和验证. 签名sign的方式是目前比较常用的方式. 第1步:接入者把需求访问的接 ...

  5. 01 C语言实现动态气泡碰撞和移动的效果,小球碰撞,Win7气泡壁纸,碰撞算法

    C语言实现动态气泡碰撞和移动的效果 作者 将狼才鲸 创建日期 2023-01-29 Git源码仓库地址:C语言实现动态气泡碰撞和移动的效果 CSDN文章地址:01 C语言实现动态气泡碰撞和移动的效果 ...

  6. 服务器系统如何校验md5值,怎么验证md5-NTP的MD5加密

    NTP的MD5是一种验证机制,如果服务器启用MD5,不强制要求客户配置MD5验证,客户端发送MD5验证包,服务器回复MD5的NTP数据包:客户端不发送MD5验证数据包,服务器回复不含MD5的数据包.使 ...

  7. python2 md5库_python版本坑:md5例子(python2与python3中md5区别)

    起步 对于一些字符,python2和python3的md5加密出来是不一样的. # python2.7 pwd = "xxx" + chr(163) + "fj" ...

  8. java 圆形碰撞箱_你会使用“碰撞箱”吗?5种你不知道的玩法 甚至能定位死亡方位...

    原标题:你会使用"碰撞箱"吗?5种你不知道的玩法 甚至能定位死亡方位 "碰撞箱"对于萌新来说是个陌生的词,但对于一些玩家来说却是一个生存利器! 一.什么是&qu ...

  9. c语言md5函数 linux,【转】MD5校验C语言实现源代码

    /* 带密钥的MD5算法库md5.h共有下列函数: char* MDString (char *); // 输入任意一个字符串,经过md5算法处理后,返回结果:一个定长(32个字符)字符串 char* ...

最新文章

  1. nginx win 启动关闭_windows下Nginx启动、关闭、重启bat工具
  2. 【机器学习基础】kaggle竞赛中数据抽样方式
  3. 用pip命令把python包安装到指定目录
  4. XSS和CSRF详解与防御
  5. A new ABAP HTTP test client RSICFCLTST01
  6. java crud事件回调_java回调机制 - 神是到着念的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. C语言不调用库函数画直线
  8. 用$.getJSON() 和$.post()获取第三方数据做页面 ——惠品折页面(1)
  9. Visro 应用的前端模板工具介绍 -JsRender
  10. DELMIA软件物流仿真:使用输送带输送物料的仿真操作方法
  11. 燕十八的php教材学完能找工作吗,燕十八的布尔教育怎么样? - php完全自学手册...
  12. win7局域网共享文件夹
  13. ffmpeg 多个音频合并 截取 拆分
  14. 微信聊天记录删了怎么恢复找回来2022 微信聊天记录删了怎么恢复找回来步骤
  15. 写一个简单的准星辅助小工具
  16. php转调页面,怎样练到转调弹奏信手捏来,太实用
  17. 自组网灵活补盲|北峰油气田勘测解决方案
  18. 模式识别技术漫谈(5)
  19. JAVA毕设项目公立医院绩效考核系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
  20. css伪类炫酷迷幻边框

热门文章

  1. Linux RMAP
  2. Introduction to the Linux Kernel
  3. linux内核驱动之 设备和模块的分类
  4. 鼠标划过图片进行缩放效果
  5. restful 参数带斜杠_SpringCloud实战:Restful架构API接口经典设计误区
  6. python将图片原比例缩小_Python实现图片长宽比例缩放和填充
  7. this.$modal.confirm 自定义按钮关闭_【勤哲资料】7.6 自定义打印
  8. unity手机 通过php连接mysql_如何从Unity连接到数据库
  9. 华为5g鸿蒙折叠,华为5G折叠概念新机:麒麟9000+鸿蒙OS 这才是华为的实力
  10. android百度地图地址解析失败怎么办,【百度地图API】当地址解析失败时,如何调用search方法查找地址...