V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Ylenol
V2EX  ›  问与答

有没有大佬知道如何把 2 个不同的视频的 MD5 值改成相同的呢

  •  
  •   Ylenol · 2022-12-02 11:44:07 +08:00 · 3450 次点击
    这是一个创建于 741 天前的主题,其中的信息可能已经有所发展或是发生改变。
    23 条回复    2022-12-03 10:21:59 +08:00
    knightdf
        1
    knightdf  
       2022-12-02 11:48:12 +08:00   ❤️ 3
    国安部需要你这种人才
    haimall
        2
    haimall  
       2022-12-02 11:51:08 +08:00   ❤️ 1
    那还是 md5 吗
    Twan
        3
    Twan  
       2022-12-02 11:54:39 +08:00   ❤️ 1
    膜拜下 这个想法...
    唯一可能自己做一个假的 MD5 工具吧, 至于那种两个文件再 128bit 里碰撞出奇迹 导致 MD5 相同的可能 还是期待地球先爆炸吧
    《最后来一句 不要往心里去: "但凡有点计算机基础 这话都问不出来" 》
    swulling
        4
    swulling  
       2022-12-02 11:55:06 +08:00   ❤️ 15
    RebornT
        5
    RebornT  
       2022-12-02 11:57:06 +08:00
    把两个视频的 MD5 存 txt 里,复制第一个,粘贴到第二个 (逃
    swulling
        6
    swulling  
       2022-12-02 11:57:24 +08:00
    Q: Can one make 2 different files get the same hash by appending stuff?
    A: With MD5, in a few hours on a standard computer. With SHA1, it's possible but not practical for end-users (Complexity: 2^63.4 Price: $45K)

    Q: Will the 2 files remain valid?
    A: In general, yes, as most file formats tolerate appended data. OTOH files signatures will be likely broken.
    vigack
        7
    vigack  
       2022-12-02 12:32:13 +08:00   ❤️ 1
    @swulling
    试了下确实可以,非常简单,我试了两个大小为 200 多 MB 的 mp4 视频,下面是修改前后的 md5:
    ---
    4cd246723eebc88224b7a710c488622e 1.mp4
    86c900a3f0e9fb2b737309039572983a 2.mp4
    940ea0adec996534818fbfabd25852b0 collision1.mp4
    940ea0adec996534818fbfabd25852b0 collision2.mp4
    286fd34ae0a3cde44f6e470f9327aded collisionl1.mp4
    286fd34ae0a3cde44f6e470f9327aded collisionl2.mp4
    ---
    全程只需要十几秒钟。
    操作相当无脑,直接 clone 下整个仓库,进入 scripts 目录,执行 python mp4.py 1.mp4 2.mp4
    0ZXYDDu796nVCFxq
        8
    0ZXYDDu796nVCFxq  
       2022-12-02 12:43:54 +08:00
    md5 碰撞轻而易举
    1423
        9
    1423  
       2022-12-02 12:57:40 +08:00
    felixlong
        10
    felixlong  
       2022-12-02 13:45:51 +08:00
    咋就故意把这个 ignore 了呢?这个能做到才是真的被破解了。
    Q: Is it possible to make a file get an arbitrary MD2/MD4/MD5/MD6/SHA1/SHA2/SHA3, or the same hash as another file?
    A: No.
    swulling
        11
    swulling  
       2022-12-02 13:49:32 +08:00
    @felixlong 这个并不是 OP 的诉求。所有回复都是为了解决 OP 提出的问题。
    dqzcwxb
        12
    dqzcwxb  
       2022-12-02 13:50:37 +08:00
    挺刑的!
    xiangyuecn
        13
    xiangyuecn  
       2022-12-02 13:57:25 +08:00   ❤️ 1
    目测只需改最后几个字节,前面的数据只需计算一遍,反复去算后面几个字节得到完整的新 md5 ,计算量目测不大,确实轻而易举
    Ylenol
        14
    Ylenol  
    OP
       2022-12-02 14:14:05 +08:00
    @swulling 感谢大佬。十分感谢!
    lwlizhe
        15
    lwlizhe  
       2022-12-02 16:44:01 +08:00
    话说很好奇,搞出俩相同 hash 是要做啥?

    印象中只有 hash 洪水攻击才会需要一定量的相同 hash 的文件或者请求啥的
    Twan
        16
    Twan  
       2022-12-02 17:01:37 +08:00
    @Twan 看来我的脸有点疼
    Puteulanus
        17
    Puteulanus  
       2022-12-02 17:09:58 +08:00
    低成本的 MD5 碰撞记得早就被实现了,所以现在 MD5 仅建议拿来校验文件完整性
    lambdaq
        18
    lambdaq  
       2022-12-02 17:13:58 +08:00
    @Twan 你应该加一个限定条件:文件大小一模一样
    nlzy
        19
    nlzy  
       2022-12-02 17:58:41 +08:00   ❤️ 1
    @lambdaq 文件大小无论是一样还是不一样,选择前缀攻击的方法和算力成本都大差不差。

    我一直很好奇 V 站网友对 MD5 以及文件大小来抗碰撞的迷信到底是从哪来的。两年前有人在 V 站发帖,问 MD5 作为唯一标识可不可行,当时也是不少人觉得加上大小就可行了。(笑
    lambdaq
        20
    lambdaq  
       2022-12-02 18:12:57 +08:00
    @nlzy 也得是文件格式支持插入大量无意义元数据才行吧。。有签名的那种文件你修改了直接打不开。
    swulling
        21
    swulling  
       2022-12-02 18:28:29 +08:00 via iPhone
    @lambdaq 大部分文件格式都支持 append 很多无意义的数据。

    记得之前有一个简单的加密方法就是把数据塞到图片里。
    yxwzaxns
        22
    yxwzaxns  
       2022-12-02 20:40:36 +08:00   ❤️ 2
    看了楼上的回复我才发现好多人都不认识这个人
    https://www.cs.tsinghua.edu.cn/info/1138/3905.htm
    lusi1990
        23
    lusi1990  
       2022-12-03 10:21:59 +08:00 via Android
    哈系碰撞
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2871 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:36 · PVG 20:36 · LAX 04:36 · JFK 07:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.