virusdefender

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

  •  
  •   virusdefender · Feb 8, 2015 · 36842 views
    This topic created in 4119 days ago, the information mentioned may be changed or developed.

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

    72 replies    2020-01-02 09:11:49 +08:00
    Luzifer
        1
    Luzifer  
       Feb 8, 2015   ❤️ 1


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

    http://php.code.kekou.de/Functions/Playing_with_strings/alternative_data_hashing.html
    lsmgeb89
        9
    lsmgeb89  
       Feb 8, 2015
    这个不是好几年前就有了吗?是中国的一位女密码学家的成果。
    buerwei
        10
    buerwei  
       Feb 8, 2015
    头像~~~嘘~
    est
        11
    est  
       Feb 8, 2015
    LZ你搞一个去掉EXIF和任何附加metadata或者尾部无用字节的 jpeg ,内容不同,md5一样,就算你厉害。
    h4rdy
        12
    h4rdy  
       Feb 8, 2015
    fastcoll.exe就能做到
    kimmykuang
        13
    kimmykuang  
       Feb 8, 2015
    MD5碰撞吧,好像是一个中国的女学者首先证实的
    shyangs
        14
    shyangs  
       Feb 8, 2015
    百度网盘的秒传是用MD5,分别传这两张上去实验看看 ฅ'ω'ฅ
    zhfy1991
        15
    zhfy1991  
       Feb 8, 2015
    @shyangs 这两个文件都太小了,用不用秒传都是秒传~
    DingSoung
        16
    DingSoung  
       Feb 8, 2015
    生成两个内容不同,但是MD5,听说过,牛
    poporange630
        17
    poporange630  
       Feb 8, 2015 via Android
    这么说吧 MD5就那长 但数据却是无穷无尽的 所以总会出现多种数据对应一个MD5的情况 这是很自然的
    love
        18
    love  
       Feb 8, 2015
    @poporange630 你知道md5是16字节吗?即使宇宙每个原子都对应一个md5都不会重复。
    sincway
        19
    sincway  
       Feb 8, 2015
    @love 无限集合映射到有限集合,总会有碰撞的
    yfdyh000
        20
    yfdyh000  
       Feb 8, 2015
    @love 16字节是截断过的吧,只有前半。“一般128位的MD5散列被表示为32位十六进制数字。”。
    yfdyh000
        21
    yfdyh000  
       Feb 8, 2015
    @love IPv6地址和MD5输出都是128bit,IPv6地址只是地球每粒沙子的级别,MD5不可能做到宇宙所有原子的级别吧。而且SHA1的输出是160bit、SHA256/512更长,如果MD5已经那么大了,没必要再加长了吧。
    msg7086
        22
    msg7086  
       Feb 8, 2015 via iPhone
    @love 如果不会重复,那以后文件都不用存整个了,直接从散列里还原出唯一内容就好了。
    love
        23
    love  
       Feb 8, 2015
    @msg7086 我是说理论上会重复,实际上可以认为不会,至少不用但心随机碰撞。按wikipedia的说法32个字节就可以对应宇宙中所有原子。
    yfdyh000
        24
    yfdyh000  
       Feb 8, 2015
    @love 哪篇说的?
    Slienc7
        25
    Slienc7  
       Feb 8, 2015
    @love 哈哈,漲姿勢了!。。。
    Slienc7
        26
    Slienc7  
       Feb 8, 2015
    @love 求wikipedia鏈接
    Tink
        27
    Tink  
    PRO
       Feb 8, 2015
    撞了
    yfdyh000
        29
    yfdyh000  
       Feb 8, 2015
    @love 哪句,没看到。建议看看 http://zh.wikipedia.org/wiki/数量级_(数据) ,两者差得很远。
    dofine
        30
    dofine  
       Feb 8, 2015 via iPhone
    @lsmgeb89 没记错的话是王小云(芸),原先我们学校的数学系教授,后来就去了清华。
    Slienc7
        31
    Slienc7  
       Feb 8, 2015
    @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 個
    Slienc7
        32
    Slienc7  
       Feb 8, 2015
    一算才發現確實很大,不過還差的遠~
    love
        33
    love  
       Feb 8, 2015
    @xgowex 那上写估算原子总数在10^80量级,len(str(256**32)) == 10^78,也差不多了
    loading
        34
    loading  
       Feb 8, 2015
    样子不同,年龄相同的两个人。(年龄就是摘要)
    Slienc7
        35
    Slienc7  
       Feb 8, 2015
    @love 沒搞懂怎麽算10^78的~
    yfdyh000
        36
    yfdyh000  
       Feb 8, 2015
    @love 你这算的是32位字节最多能存储的数据量。上面说过了,MD5的输出是128bit,32个字节是转换后的十六进制数列。128bit/8=16字节。PS: 原来真的是16字节,20楼我说错了。
    @xgowex http://zh.wikipedia.org/wiki/数量级_(数据) 写的“128 bits (16 bytes)”是2^7。
    ETiV
        37
    ETiV  
       Feb 8, 2015
    仨球放俩抽屉里, 在不切割球的前提下, 必然有一个抽屉有俩球.
    jiangrongyong
        38
    jiangrongyong  
       Feb 8, 2015   ❤️ 1


    百度云识别成同一张了 2333
    BGLL
        39
    BGLL  
       Feb 8, 2015
    @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亿吨
    BGLL
        40
    BGLL  
       Feb 8, 2015
    @xgowex
    32字节 = 2^256 =1.1x10^77 个地址

    宇宙可可观测原子数量 N x10^80 个 还是不够...
    typcn
        41
    typcn  
       Feb 8, 2015
    有程序可以一键碰撞 MD5
    GPU
        42
    GPU  
       Feb 8, 2015
    @Luzifer 属性插件发一下。
    yeluozhiqiu1981
        43
    yeluozhiqiu1981  
       Feb 8, 2015
    @jiangrongyong plane那张根本传不上去好吧,怎么传都显示的是ship 的图片
    Luzifer
        44
    Luzifer  
       Feb 8, 2015
    sennes
        45
    sennes  
       Feb 8, 2015   ❤️ 1
    刚刚把两张图解压出来之后想放到印象笔记里面
    发现两张图变一模一样了=,=
    取决于你先丟哪张进去。有意思。
    abelyao
        46
    abelyao  
       Feb 8, 2015
    @sennes @jiangrongyong @yeluozhiqiu1981
    明明都知道 MD5 可以主动碰撞,而且都好多年了啊,这些服务商为什么到现在都还在用 MD5 做重复校验呢…?
    mortal
        47
    mortal  
       Feb 8, 2015
    @sennes 好玩!
    h0wardc
        48
    h0wardc  
       Feb 9, 2015
    @abelyao 因為沒人會主動去撞吧...
    msg7086
        49
    msg7086  
       Feb 9, 2015
    @abelyao 所有的哈希算法都会撞。平时用的hashtable啥的,hash key天天撞年年撞,也没见大家都把hashtable删了自己实现啊?
    Agromania
        50
    Agromania  
       Feb 9, 2015
    @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 个氢原子。也就是说,没有碰撞的概率可以忽略不计。

    小伙子,请对宇宙有敬畏之心。
    Agromania
        51
    Agromania  
       Feb 9, 2015
    抱歉,我忘记乘以71.3%了,不过,你懂的……
    canautumn
        52
    canautumn  
       Feb 9, 2015
    以前有一次用qq邮箱发超大附件,别人接收到的是另一个不知道是谁的压缩包,里边都是限制级的图。试了好多次都这样。
    xieyudi1990
        53
    xieyudi1990  
       Feb 9, 2015
    @jiangrongyong 收集新出A片的MD5, 然后弄一堆同MD5的葫芦娃抢先上传, 2333
    garipan
        54
    garipan  
       Feb 9, 2015
    碰撞
    a2z
        55
    a2z  
       Feb 9, 2015   ❤️ 1
    @xieyudi1990

    方校长有一篇干扰BT下载的论文里就是这么干的,233
    rrfeng
        56
    rrfeng  
       Feb 9, 2015
    @dofine 校友你好。这是你学长 @kfc315
    b821025551b
        57
    b821025551b  
       Feb 9, 2015
    王小云那个碰撞啊,但是碰撞了之后出来的应该是个打不开的文件,而这个文件居然很完整?!
    jesonyang
        58
    jesonyang  
       Feb 9, 2015
    一堆科学家开始在这里计算了!
    xunyu
        59
    xunyu  
       Feb 9, 2015
    有意思,这样的话可以用这个方式替换掉别人云上的文件了
    kkhaike
        60
    kkhaike  
       Feb 9, 2015
    @Luzifer 这是什么插件
    tomheng
        61
    tomheng  
       Feb 9, 2015
    大小也一样,我很好奇这是构造的还是巧合?
    ryd994
        62
    ryd994  
       Feb 9, 2015
    @b821025551b jpg是允许结尾拼接无关数据的。所谓”图种“就是这么来的
    dorentus
        63
    dorentus  
       Feb 9, 2015
    @msg7086 所有的 hashtable 实现都会考虑并且处理碰撞的啊
    b821025551b
        64
    b821025551b  
       Feb 9, 2015
    @ryd994 但是md5是散列的啊!!像图种那样拼接在结尾是不能实现md5一样呀
    itfanr
        65
    itfanr  
       Feb 9, 2015
    有意思
    qq446015875
        66
    qq446015875  
       Feb 9, 2015
    @kkhaike HashTab
    Cu635
        68
    Cu635  
       Feb 9, 2015
    @msg7086 也不是,hash函数原理是单向过程很简单,但是反推就极其复杂。可能是一一映射,但是想通过hash值找原函数几乎不可能。

    md5就是被发现了可行的算法来找相同md5的串,所以不安全了。
    ryd994
        69
    ryd994  
       Feb 10, 2015
    @b821025551b 未必,王小云不是已经证明某些情况下主动碰撞难度可以大大降低了么。
    两张图片原来的大小不一样都没关系,补到同大小
    我只要给两张图片分别补上构造的数据,使他们md5一样即可。
    ryd994
        70
    ryd994  
       Feb 10, 2015
    @b821025551b 举个例子,微软所有的iso,crc都是FFFFFFFF,就是通过补32位的数据做到的。
    当然CRC不抗人为攻击,做起来要简单点,MD5是散列,做起来麻烦点而已。
    FENICE
        71
    FENICE  
       Feb 10, 2015 via Android
    涨姿势了!
    l00t
        72
    l00t  
       Jan 2, 2020
    有人能当场做个图么?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1199 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 163ms · UTC 23:29 · PVG 07:29 · LAX 16:29 · JFK 19:29
    ♥ Do have faith in what you're doing.