Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
henglinli
V2EX  ›  Linux

pan.baidu.com/s/后面的好像是 md5,那么问题来了

  •  
  •   henglinli · Sep 22, 2018 via iPhone · 14235 views
    This topic created in 2795 days ago, the information mentioned may be changed or developed.
    md5 冲突了,会出现什么情况?
    有没有人试过了?
    Supplement 1  ·  Sep 24, 2018
    人人擅长不同,不知道 hash 冲突也别喷。
    要明确自己来此讨论的目的,我的目的分享和学习。
    57 replies    2018-10-03 09:42:04 +08:00
    2pang
        1
    2pang  
       Sep 22, 2018 via iPhone   ❤️ 10
    你先做了一个假设 然后基于假设提出问题 不是应该先验证一下自己的假设对不对么
    henglinli
        2
    henglinli  
    OP
       Sep 22, 2018 via iPhone
    据我发现 d.pcs.baidu.com/file/后面的这串,某些文件是 md5,某些又不是。
    不想上传的原因是:尽量不用需要实名的服务。
    freed
        3
    freed  
       Sep 22, 2018
    说不定加用户名和分享时间来计算.用户名肯定不会重复..这样这一串也就不会重复了
    zsdroid
        4
    zsdroid  
       Sep 22, 2018   ❤️ 1
    @henglinli #2 说的好像你不买火车票似得
    peterpei
        5
    peterpei  
       Sep 22, 2018 via Android
    1:有没有这样一种可能:若是第一次分享文件,直接使用 md5 文件,若有其它用户再次分享,则可以加上 uid 或者百度有个分享顺序 ,比如 a 用户第一次分享,就是 md5,而 b 用户第二次分享,就可能是 md5 加次数
    2:发 linux 版好像不对啊。。
    springmarker
        6
    springmarker  
       Sep 22, 2018 via Android
    谷歌不是发布过两个一样的 pdf 吗
    t6attack
        7
    t6attack  
       Sep 22, 2018   ❤️ 37
    测试了一下教科书级样本文件:
    http://www.win.tue.nl/hashclash/SoftIntCodeSign/HelloWorld-colliding.exe
    http://www.win.tue.nl/hashclash/SoftIntCodeSign/GoodbyeWorld-colliding.exe
    离线下载跪了。两个文件分别离线到网盘,再下载到本地。发现都是第一个。
    huluhulu
        8
    huluhulu  
       Sep 22, 2018 via iPhone
    只有分享的才有这个链接,而且链接是区分大小写的,应该不是 md5,楼主想多了
    henglinli
        9
    henglinli  
    OP
       Sep 22, 2018 via iPhone
    @t6attack lice !之前腾讯云丢过数据,按照你的说法,百度盘也能丢数据了。
    henglinli
        10
    henglinli  
    OP
       Sep 22, 2018 via iPhone
    @zsroid 远离百度总没错吧。国内这环境,不实名都不能发言了。
    passerbytiny
        11
    passerbytiny  
       Sep 22, 2018 via Android
    国内网盘,多用户用特征码共享同一个文件,难道不是常识吗,为什么会有冲突的疑问。

    但 md5 做特征码很 low,直接用特征码当链接更 low
    yushiro
        12
    yushiro  
       Sep 22, 2018 via iPhone   ❤️ 6
    从逻辑上来讲,不可能是 md5。
    同一个文件,特征码是一致的,如果用 md5 哈希后分享出去,打开的 web 页面显示这个文件的 owner 是谁?你好友分享给你的文件,结果你看到 owner 是陌生人?
    Showfom
        13
    Showfom  
    PRO
       Sep 22, 2018 via iPhone
    @springmarker 那个是 sha-1
    lscho
        14
    lscho  
       Sep 22, 2018
    @yushiro 从逻辑上来讲,可能是 md5,因为每次分享都存入数据库了,既然存入数据库,就有了唯一的 md5,之后就没有“打开的 web 页面显示这个文件的 owner 是谁?你好友分享给你的文件,结果你看到 owner 是陌生人?”这个问题了。

    但是从实际数据来看,不是 md5。
    KevZhi
        15
    KevZhi  
       Sep 23, 2018 via iPhone
    不是 md5
    md5 冲突了就会出出很大的问题
    好了 解答完毕
    babytomas
        16
    babytomas  
       Sep 23, 2018
    有可能只是担心自己的伪随机字符串太短、又嫌 UUID 太长且不好看,于是乎算字符串的 MD5 来作为链接名。

    存链接名之前查重,这样就生成了伪随机的 MD5 且不会重复了。
    zhzer
        17
    zhzer  
       Sep 23, 2018 via Android
    md5 很 low 吗,我都用的 md5 当做 session id ……
    crab
        18
    crab  
       Sep 23, 2018
    @t6attack
    @passerbytiny 应该是用 md5+文件大小 做特征的。md5 匹配大小不对不行。 腾讯的离线就是 sha1+文件大小。
    Biwood
        19
    Biwood  
       Sep 23, 2018
    @t6attack 你跟楼主说的根本不是一个问题。

    楼主胡乱猜测是 md5,其实只是一种 url 生成规则而已,不一定跟 md5 有关,url 不重复这是常识,不存在冲突问题。
    而你测试的是云存储的机制,大部分云存储都有这种防止重复存储的解决方案,百度在这方其实做的比较一般。
    kernel
        20
    kernel  
       Sep 23, 2018 via Android
    楼上说的很清楚了,共享网址里的那一串几乎不可能是 md5,你自己写过共享链接的就知道了,直接用了文件的 md5 你要取消共享怎么办?一般就是数据库里面共享记录的 id。 至于百度是不是用 md5 来文件查重,楼上的一个实验已经很说明问题了。
    justff
        21
    justff  
       Sep 23, 2018
    现在发帖只需要猜就可以了
    yushiro
        22
    yushiro  
       Sep 23, 2018 via iPhone
    @lscho 为啥你引用我的回复,会漏了一个关键的“不可能是 md5 ”中的“不”字
    liuyanjun0826
        23
    liuyanjun0826  
       Sep 23, 2018
    确定不是 MP5 冲突了? MD5 是不可能冲突的,除非你吃过安定片了。
    liuyanjun0826
        24
    liuyanjun0826  
       Sep 23, 2018
    @liuyanjun0826 对不起,安定片也不能让 MD5 冲突。。。
    theroesi
        25
    theroesi  
       Sep 23, 2018 via Android   ❤️ 1
    @liuyanjun0826 你是不是对 MD5 有什么误解...
    liuyanjun0826
        26
    liuyanjun0826  
       Sep 23, 2018
    @theroesi 不可能的,我就职于谷歌公司,如果我对 MD5 有误解,那世界上的通讯设备就都会出问题。
    matthewz
        27
    matthewz  
       Sep 23, 2018   ❤️ 1
    @liuyanjun0826 这年头了, Googler 不等于懂 md5 或者什么"世界上的通讯设备"
    liuyanjun0826
        28
    liuyanjun0826  
       Sep 23, 2018
    @matthewz 我是谷歌经理,不是打工仔。不要对号入座。
    sutking
        29
    sutking  
       Sep 23, 2018 via iPhone
    @zsdroid #4 杠精!人家说的是尽量不用!
    matthewz
        30
    matthewz  
       Sep 23, 2018   ❤️ 1
    @liuyanjun0826 不是打工仔 牛逼~~~~~~~(破音)
    azh7138m
        32
    azh7138m  
       Sep 23, 2018 via Android
    啊,友情提示不要在 google 搜那个经理的 id,facebook 看得我眼要瞎了。
    gclove
        33
    gclove  
       Sep 23, 2018
    @liuyanjun0826 就职于谷歌公司 ? 谷歌经理, 不是像我们一样的打工仔。 每个月花 400 块钱就能大吃大喝 ? ?
    Hsinchu
        34
    Hsinchu  
       Sep 23, 2018 via Android
    度盘之前是 md5 作为 hash 的,不知道现在有没有改进。有个例子就是两张 md5 相同的图片上传到度盘,最后都是一张图片。这个链接里是个压缩包,解压后就是两个 md5 相同的图片,大家可以自己试验一下。
    https://pan.baidu.com/s/1W8fw1PATXxbXnceIa1GtlQ
    ggsimidar
        35
    ggsimidar  
       Sep 23, 2018
    @liuyanjun0826 MD5 不可能冲突是什么原理?还请经理给我们这些打工仔分享一下
    lscho
        36
    lscho  
       Sep 23, 2018
    @yushiro 我的意思就是可能是 md5 啊。。。因为每次分享就要入库,既然入库,就有可能生成唯一的 hash 啊,根据 md5 就可以反查相关数据,以及取消分享了。
    imn1
        37
    imn1  
       Sep 23, 2018
    这个帖子的焦点一直在跳,chaos

    md5 跳到实名,到百度,到 google,到经理?
    icylogic
        38
    icylogic  
       Sep 23, 2018
    @yushiro 他的意思是那个可以不是文件的 md5,是用其他信息一起(比如 Owner )生成了一个 ID ……但这种已经和主题没啥关系了。

    以及这贴后面走向真是猝不及防……
    Arnie97
        39
    Arnie97  
       Sep 23, 2018 via Android
    @t6attack 关于离线下载的哈希碰撞,可以看看这篇总结 https://yangyuan.github.io/post/2014-04-12-zh-china-cloud-drives
    不过这跟楼主问的链接生成没有太大的关系
    MinQ
        40
    MinQ  
       Sep 23, 2018 via Android
    @azh7138m 笑出声,打人不打脸啊
    geeti
        41
    geeti  
       Sep 24, 2018
    @liuyanjun0826 精神谷歌经理不等于谷歌经理,就像精日并不是日本人。醒一醒
    QK8wAUi0yXBY1pT7
        42
    QK8wAUi0yXBY1pT7  
       Sep 24, 2018
    https://kdslife.com/t_9016565.html
    二楼
    还是有撞 id 可能的
    612
        43
    612  
       Sep 24, 2018 via iPhone
    skylancer
        44
    skylancer  
       Sep 24, 2018
    @liuyanjun0826 不说上面某样本,大概国内有人找到了冲突的事情你也不知道?
    呵呵
    skylancer
        45
    skylancer  
       Sep 24, 2018
    @azh7138m 我艹我真不该收件
    skylancer
        46
    skylancer  
       Sep 24, 2018
    @azh7138m 我艹我真不该手贱
    scriptB0y
        47
    scriptB0y  
       Sep 24, 2018
    这里有个项目可以对不同的 pdf 让它们生成相同的 sha1,md5 不知道有没有类似的。

    https://github.com/nneonneo/sha1collider
    wolfie
        48
    wolfie  
       Sep 24, 2018
    @azh7138m
    手贱 + 辣眼睛
    jss
        49
    jss  
       Sep 24, 2018 via iPhone
    我有 100 种方法让他不冲突…
    ryd994
        50
    ryd994  
       Sep 24, 2018 via Android
    @liuyanjun0826 md5 碰撞没听说过?
    瞎 jb 说话不嫌丢人。你说说是什么级别的 manager,什么部门?别是客服经理吧?
    一开始说错了也就算了,说不过别人就开始用身份压人?用身份压人可得实名啊
    ryd994
        51
    ryd994  
       Sep 24, 2018 via Android
    话说我每个月饭钱都将近一千了我也没这么牛逼啊
    美元
    liuyanjun0826
        52
    liuyanjun0826  
       Sep 24, 2018 via Android
    @ryd994 你可以对号入座,但请你先照照镜子问问自己,我说的自己信吗?
    henglinli
        53
    henglinli  
    OP
       Sep 24, 2018
    感谢 @t6attack @Hsinchu 分享测试结果。
    测试结果显示百度会无法分享 hash 相同的非首次存储的 duplicate。
    可能是存储了,但是 url 生成重复;也可能发现是 duplicate 没有存储。
    如果是第一种情况就好了,能上传脏数据。
    第二种情况,可以考虑投诉(考虑到估计百度用户条款,可能没那么简单)。

    md5 比 sha1 “弱“(既然能让 sha1 冲突,当然能让 md5 冲突,事实上出现顺序也是如此)。
    让 hash 冲突的前提就是文件大小一致。
    url 生成没有用 uuid,而是 md5 我感到好奇。

    能有人提供更多百度云存储细节就好了。
    cuzfinal
        54
    cuzfinal  
       Sep 25, 2018
    冲突就冲突吧,一点点的冲突几率远比耗费大量带宽和时间容易接受。
    alfredsun
        55
    alfredsun  
       Sep 25, 2018
    @azh7138m 谢谢 瞎了之后感觉好多了
    pityhero233
        57
    pityhero233  
       Oct 3, 2018 via Android
    @liuyanjun0826 哈哈哈经理真厉害,400 元公款吃喝
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3054 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 117ms · UTC 12:10 · PVG 20:10 · LAX 05:10 · JFK 08:10
    ♥ Do have faith in what you're doing.