两张内容不一样但是 md5 一样的图片

2015-02-08 13:14:13 +08:00
 virusdefender

原文在 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

35721 次点击
所在节点    分享发现
72 条回复
Luzifer
2015-02-08 13:26:13 +08:00


有意思,怎么做到的?
DennyDai
2015-02-08 13:28:10 +08:00
md5的算法本来就是有可能重复的。。。虽然几率很小吧。。。
所以才一般都用MD5+sha1.。。让几率更小
virusdefender
2015-02-08 13:29:41 +08:00
paw
2015-02-08 13:31:28 +08:00
http://www.win.tue.nl/hashclash/
chosen-prefix collisions方法构造碰撞的
greatdk
2015-02-08 13:32:42 +08:00
6=3+3
6=2+4
Luzifer
2015-02-08 13:32:54 +08:00
Draplater
2015-02-08 13:43:34 +08:00
应该是主动碰撞的
Delbert
2015-02-08 13:50:41 +08:00
尽管推荐用sha1()来进行数据散列算法,但另一种算法MD5也很流行。MD是消息摘要“Message Digest”的缩写。md5()产生数据散列的方式同sha1()相同,只是md5()返回的结果只有32个字节。因为sha1()的位数更长,所以相对来说不容易发生“碰撞”——一种两个不同的字符串得到同样的哈希值的情况。

http://php.code.kekou.de/Functions/Playing_with_strings/alternative_data_hashing.html
lsmgeb89
2015-02-08 13:54:44 +08:00
这个不是好几年前就有了吗?是中国的一位女密码学家的成果。
buerwei
2015-02-08 15:12:48 +08:00
头像~~~嘘~
est
2015-02-08 16:02:39 +08:00
LZ你搞一个去掉EXIF和任何附加metadata或者尾部无用字节的 jpeg ,内容不同,md5一样,就算你厉害。
h4rdy
2015-02-08 16:11:39 +08:00
fastcoll.exe就能做到
kimmykuang
2015-02-08 16:46:48 +08:00
MD5碰撞吧,好像是一个中国的女学者首先证实的
shyangs
2015-02-08 17:23:59 +08:00
百度网盘的秒传是用MD5,分别传这两张上去实验看看 ฅ'ω'ฅ
zhfy1991
2015-02-08 18:16:07 +08:00
@shyangs 这两个文件都太小了,用不用秒传都是秒传~
DingSoung
2015-02-08 18:20:48 +08:00
生成两个内容不同,但是MD5,听说过,牛
poporange630
2015-02-08 18:40:26 +08:00
这么说吧 MD5就那长 但数据却是无穷无尽的 所以总会出现多种数据对应一个MD5的情况 这是很自然的
love
2015-02-08 18:52:03 +08:00
@poporange630 你知道md5是16字节吗?即使宇宙每个原子都对应一个md5都不会重复。
sincway
2015-02-08 19:04:52 +08:00
@love 无限集合映射到有限集合,总会有碰撞的
yfdyh000
2015-02-08 19:12:00 +08:00
@love 16字节是截断过的吧,只有前半。“一般128位的MD5散列被表示为32位十六进制数字。”。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/169241

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX