
原文在 http://weibo.com/1619185424/C3fQkvyfH?type=comment
下载地址 http://pan.baidu.com/s/1kTpAUNl#path=%252Fmd5.%25E7%25A2%25B0%25E6%2592%259E
我这比较的md5也确实是一样的
MacBook-Pro:md5 virusdefender$ md5 plane.jpg
MD5 (plane.jpg) = 253dd04e87492e4fc3471de5e776bc3d
MacBook-Pro:md5 virusdefender$ md5 ship.jpg
MD5 (ship.jpg) = 253dd04e87492e4fc3471de5e776bc3d
但是sha1不一样
MacBook-Pro:md5 virusdefender$ openssl sha1 ship.jpg
SHA1(ship.jpg)= 9639db1fbadfcfbd4025a9b95d10b7799f65fcfb
MacBook-Pro:md5 virusdefender$ openssl sha1 plane.jpg
SHA1(plane.jpg)= 780973c1c165e76de3f10e1771db31cf9362d1f5
1 Luzifer 2015 年 2 月 8 日 有意思,怎么做到的? |
2 DennyDai 2015 年 2 月 8 日 md5的算法本来就是有可能重复的。。。虽然几率很小吧。。。 所以才一般都用MD5+sha1.。。让几率更小 |
3 virusdefender OP |
4 paw 2015 年 2 月 8 日 http://www.win.tue.nl/hashclash/ chosen-prefix collisions方法构造碰撞的 |
5 greatdk 2015 年 2 月 8 日 6=3+3 6=2+4 |
6 Luzifer 2015 年 2 月 8 日 |
7 Draplater 2015 年 2 月 8 日 via Android 应该是主动碰撞的 |
8 Delbert 2015 年 2 月 8 日 尽管推荐用sha1()来进行数据散列算法,但另一种算法MD5也很流行。MD是消息摘要“Message Digest”的缩写。md5()产生数据散列的方式同sha1()相同,只是md5()返回的结果只有32个字节。因为sha1()的位数更长,所以相对来说不容易发生“碰撞”一种两个不同的字符串得到同样的哈希值的情况。 http://php.code.kekou.de/Functions/Playing_with_strings/alternative_data_hashing.html |
9 lsmgeb89 2015 年 2 月 8 日 这个不是好几年前就有了吗?是中国的一位女密码学家的成果。 |
10 buerwei 2015 年 2 月 8 日 头像~~~嘘~ |
11 est 2015 年 2 月 8 日 LZ你搞一个去掉EXIF和任何附加metadata或者尾部无用字节的 jpeg ,内容不同,md5一样,就算你厉害。 |
12 h4rdy 2015 年 2 月 8 日 fastcoll.exe就能做到 |
13 kimmykuang 2015 年 2 月 8 日 MD5碰撞吧,好像是一个中国的女学者首先证实的 |
14 shyangs 2015 年 2 月 8 日 百度网盘的秒传是用MD5,分别传这两张上去实验看看 'ω' |
16 DingSoung 2015 年 2 月 8 日 生成两个内容不同,但是MD5,听说过,牛 |
17 poporange630 2015 年 2 月 8 日 via Android 这么说吧 MD5就那长 但数据却是无穷无尽的 所以总会出现多种数据对应一个MD5的情况 这是很自然的 |
18 love 2015 年 2 月 8 日 @poporange630 你知道md5是16字节吗?即使宇宙每个原子都对应一个md5都不会重复。 |
21 yfdyh000 2015 年 2 月 8 日 @love IPv6地址和MD5输出都是128bit,IPv6地址只是地球每粒沙子的级别,MD5不可能做到宇宙所有原子的级别吧。而且SHA1的输出是160bit、SHA256/512更长,如果MD5已经那么大了,没必要再加长了吧。 |
27 Tink PRO 撞了 |
28 love 2015 年 2 月 8 日 |
29 yfdyh000 2015 年 2 月 8 日 @love 哪句,没看到。建议看看 http://zh.wikipedia.org/wiki/数量级_(数据) ,两者差得很远。 |
31 Slienc7 2015 年 2 月 8 日 @love 32位md5可存信息量: 16^32=2^128 近似 10^38 全球水量:1386×10^7亿立方米 近似 10^10立方米 即 即 10^18 即10^(18+6)g 即10^24g 不管氧原子,算原子:10^24 g *1/9 10^23g 10^23 mol 10^23 * NA 6*10^46 10^46 |
32 Slienc7 2015 年 2 月 8 日 一算才很大,不差的~ |
34 loading 2015 年 2 月 8 日 样子不同,年龄相同的两个人。(年龄就是摘要) |
36 yfdyh000 2015 年 2 月 8 日 @lve 你这算的是32位字节最多能存储的数据量。上面说过了,MD5的输出是128bit,32个字节是转换后的十六进制数列。128bit/8=16字节。PS: 原来真的是16字节,20楼我说错了。 @xgowex http://zh.wikipedia.org/wiki/数量级_(数据) 写的“128 bits (16 bytes)”是2^7。 |
37 ETiV 2015 年 2 月 8 日 仨球放俩抽屉里, 在不切割球的前提下, 必然有一个抽屉有俩球. |
38 jiangrongyong 2015 年 2 月 8 日 |
39 BGLL 2015 年 2 月 8 日 @love 128位MD5 = 2^128 = 3.4 ×10^38 个地址 1摩尔 = 6.02×10^23 (3.4 ×10^38)/(6.02×10^23) = 5.6x10^14 摩尔 按25度下的水来算 =5.6x10^14 /18 = 3.1 x 10^13 克 = 3.1x10^7 吨 = 3千万吨水 一条128位MD5 = 3千万吨水原子 忽略温度,2010年全国总用水量6022.0亿吨 |
41 typcn 2015 年 2 月 8 日 有程序可以一键碰撞 MD5 |
43 yeluozhiqiu1981 2015 年 2 月 8 日 @jiangrongyong plane那张根本传不上去好吧,怎么传都显示的是ship 的图片 | /tr>
44 Luzifer 2015 年 2 月 8 日 |
45 sennes 2015 年 2 月 8 日 刚刚把两张图解压出来之后想放到印象笔记里面 发现两张图变一模一样了=,= 取决于你先哪张进去。有意思。 |
46 abelyao 2015 年 2 月 8 日 |
49 msg7086 2015 年 2 月 9 日 @abelyao 所有的哈希算法都会撞。平时用的hashtable啥的,hash key天天撞年年撞,也没见大家都把hashtable删了自己实现啊? |
50 Agromania 2015 年 2 月 9 日 @love 差的太远了吧,无限到有限,理论上来说是一定会碰撞的,学过数学的极限的话应该知道 有限 / 无限 = 0 如果你把宇宙中所有原子md5,其状况是几乎一直在碰撞:因为早就塞满了。 简单算一下,32位的MD5有16^32个值,也就是3.4028236692094 * 10^38 太阳的质量是1.989×10^30 千克,其中71.3%是氢 一个氢原子的质量约为1.66×10^-27 千克 所以仅仅是太阳就有1.1981927710843 * 10^57 个氢原子,如果把这样氢原子散列在MD5的空间里, 那么平均每个md5值上需要塞 3.5211720840144 * 10^18 个氢原子。也就是说,没有碰撞的概率可以忽略不计。 小伙子,请对宇宙有敬畏之心。 |
51 Agromania 2015 年 2 月 9 日 抱歉,我忘记乘以71.3%了,不过,你懂的…… |
52 canautumn 2015 年 2 月 9 日 以前有一次用qq邮箱发超大附件,别人接收到的是另一个不知道是谁的压缩包,里边都是限制级的图。试了好多次都这样。 |
53 xieyudi1990 2015 年 2 月 9 日 @jiangrongyong 收集新出A片的MD5, 然后弄一堆同MD5的葫芦娃抢先上传, 2333 |
54 garipan 2015 年 2 月 9 日 碰撞 |
55 a2z 2015 年 2 月 9 日 |
57 b821025551b 2015 年 2 月 9 日 王小云那个碰撞啊,但是碰撞了之后出来的应该是个打不开的文件,而这个文件居然很完整?! |
58 jesonyang 2015 年 2 月 9 日 一堆科学家开始在这里计算了! |
59 xunyu 2015 年 2 月 9 日 有意思,这样的话可以用这个方式替换掉别人云上的文件了 |
61 tomheng 2015 年 2 月 9 日 大小也一样,我很好奇这是构造的还是巧合? |
62 ryd994 2015 年 2 月 9 日 @b821025551b jpg是允许结尾拼接无关数据的。所谓”图种“就是这么来的 |
64 b821025551b 2015 年 2 月 9 日 @ryd994 但是md5是散列的啊!!像图种那样拼接在结尾是不能实现md5一样呀 |
65 itfanr 2015 年 2 月 9 日 有意思 |
66 qq446015875 2015 年 2 月 9 日 @kkhaike HashTab |
67 qq446015875 2015 年 2 月 9 日 |
68 Cu635 2015 年 2 月 9 日 |
69 ryd994 2015 年 2 月 10 日 |
70 ryd994 2015 年 2 月 10 日 @b821025551b 举个例子,微软所有的iso,crc都是FFFFFFFF,就是通过补32位的数据做到的。 当然CRC不抗人为攻击,做起来要简单点,MD5是散列,做起来麻烦点而已。 |
71 FENICE 2015 年 2 月 10 日 via Android 涨姿势了! |
72 l00t 2020 年 1 月 2 日 有人能当场做个图么? |