V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
henglinli
V2EX  ›  Linux

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

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

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

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

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

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

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

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

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

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

    能有人提供更多百度云存储细节就好了。
    cuzfinal
        54
    cuzfinal  
       2018-09-25 11:05:02 +08:00
    冲突就冲突吧,一点点的冲突几率远比耗费大量带宽和时间容易接受。
    alfredsun
        55
    alfredsun  
       2018-09-25 11:16:47 +08:00
    @azh7138m 谢谢 瞎了之后感觉好多了
    pityhero233
        57
    pityhero233  
       2018-10-03 09:42:04 +08:00 via Android
    @liuyanjun0826 哈哈哈经理真厉害,400 元公款吃喝
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5622 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:08 · PVG 15:08 · LAX 23:08 · JFK 02:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.