pan.baidu.com/s/后面的好像是 md5,那么问题来了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubunu
Fedora
CentOS
中文资源站
网易开源镜像站
henglinli
V2EX    Linux

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

  henglinli 2018-09-22 16:28:29 +08:00 via iPhone 13891 次点击
这是一个创建于 2585 天前的主题,其中的信息可能已经有所发展或是发生改变。
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  
PRO
   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
    31
azh7138m  
   2018-09-23 16:22:15 +08:00 via Android
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
    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     Solana     936 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 31ms UTC 21:38 PVG 05:38 LAX 14:38 JFK 17:38
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86