V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
est
V2EX  ›  信息安全

真·MD5 碰撞来了。相差 1 字符, hash 相同

  •  
  •   est · 266 天前 · 3933 次点击
    这是一个创建于 266 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://twitter.com/realhashbreaker/status/1770161965006008570

    a = "TEXTCOLLBYfGiJUETHQ4h"
    b = "cKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak"
    md5(a + "A" + b) == md5(a + "E" + b)
    

    算出来都是 FAAD49866E9498FC1719F5289E7A0269

    有什么用? https://www.v2ex.com/t/188364

    19 条回复    2024-05-26 19:48:34 +08:00
    dsb2468
        1
    dsb2468  
       266 天前
    早就有了呀,文件不同,MD5 相同:
    https://www.chenxublog.com/2020/12/09/different-gif-same-md5.html

    好像 MD5 碰撞的研究来自王小云?
    print
        2
    print  
       266 天前
    哪里相同了?
    echo TEXTCOLLBYfGiJUETHQ4hAcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak | md5
    caaaef8a89d4d7be19509fb351dcd80c
    echo TEXTCOLLBYfGiJUETHQ4hEcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak | md5
    a208fef3c6ad1fbb767c25d17d3d85f4
    ccsexyz
        3
    ccsexyz  
       266 天前
    ccsexyz
        4
    ccsexyz  
       266 天前
    echo -n TEXTCOLLBYfGiJUETHQ4hAcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak | md5
    faad49866e9498fc1719f5289e7a0269

    echo -n TEXTCOLLBYfGiJUETHQ4hEcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak | md5
    faad49866e9498fc1719f5289e7a0269
    est
        5
    est  
    OP
       266 天前
    @dsb2468 文件大小是否相同呢?
    ZeekChatCom
        6
    ZeekChatCom  
       266 天前
    曾经遇到过,两个不同文件,md5 一样
    adoal
        7
    adoal  
       266 天前
    @print echo 不加-n 会多一个换行
    dsb2468
        8
    dsb2468  
       266 天前
    @est 文件大小一样、MD5 一样,sha1 不同,你可以自己下载解压后看看:
    https://source.papapoi.com/wp-content/uploads/2020/12/md5exe.zip
    iyiluo
        9
    iyiluo  
       266 天前
    确实很神奇,碰撞的很多,但是长度一致,就偏差的一位,还是刚好在同一位置,这样的碰撞很稀少,遇见的概率可以中彩票了
    body007
        10
    body007  
       266 天前
    所以只用 md5 检测一致性不靠谱,可以同时用多种 hash 计算结果来保证一致性。网盘的秒传据说就是计算多种 hash 。
    ETiV
        11
    ETiV  
       266 天前
    @print

    别用 echo ,用你用户名 print 就不会有这个问题(笑~)
    llh880808
        12
    llh880808  
       266 天前
    MD5 碰撞不是新闻了,如 1L 所说,王小云在这方面的贡献很大,我记得主要是大大提高了碰撞的概率
    print
        13
    print  
       264 天前
    @ccsexyz 感谢提醒
    @adoal 感谢提醒
    @ETiV print 也不行,要 printf ,哈哈
    acess
        14
    acess  
       260 天前
    楼主这个我不太清楚,但我印象里构造碰撞本来就是稍微改特定位置的一点点数据,好像是“构造碰撞块”。
    acess
        15
    acess  
       260 天前
    像 Google 很多年年前,投入了巨量算力,结合之前学术界分析出 SHA1 的弱点,终于爆破了一次 SHA1 ,也就是 shattered.io

    现在在 stackexchange 还能搜到讲解,讲具体怎么巧妙构造这个文件: https://crypto.stackexchange.com/questions/44131/what-is-the-new-attack-on-sha-1-shattered-and-how-does-it-work

    我印象里其实两份文件的实质内容其实还是完全一样的,只是通过巧妙构造,控制 PDF 把碰撞块解析出特定语义,于是两个文档显示出来不同图层(大致意思如此),所以最后呈现的文档内容就完全不同了。
    acess
        16
    acess  
       260 天前
    文件实质内容也完全不一样的例子我记得 MD5 很多很多年前也有,示例是 hello world 和 goodbye world ,搜了一下应该是这个: https://www.win.tue.nl/hashclash/SoftIntCodeSign/

    他们说用 PS3 游戏机算了 2 天算出来的(不知道多少台)

    如果是 fastcoll 那个很多人都玩过,一般 PC 几秒到几十秒就能算出来结果了我记得。
    acess
        17
    acess  
       260 天前
    https://twitter.com/David3141593/status/1573218394358386688

    这个也很好玩,MD5 hash quine ,图片内容包含自身的 MD5
    Qiane
        18
    Qiane  
       258 天前 via iPhone
    单靠 md5 验证好几年前就不行了,至少用 sha-256 或者 md5 和 sha-1 结合
    ibukisaar
        19
    ibukisaar  
       198 天前
    @dsb2468 有区别的,纯二进制的是最早提出来的,纯字符串的是最近的,难度更高
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2991 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:00 · PVG 19:00 · LAX 03:00 · JFK 06:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.