文件储存用 md5 做标识可行吗,要考虑会出现相同 md5 的文件的情况吗?

2020 年 12 月 27 日
 kaiki
为了节省资源打算验证一下 md5 如果有相同的则直接使用之前的,但是 md5 也是可以重复的,有什么好的校验办法吗?
7462 次点击
所在节点    问与答
49 条回复
3dwelcome
2020 年 12 月 27 日
我是再加上文件大小,和 md5 组合在一起。
光 md5 判断,你心里用着也不踏实。
toaruScar
2020 年 12 月 27 日
MD5 不行的,Length Extension Attack 了解一下。
geelaw
2020 年 12 月 27 日
@toaruScar #2 length extension 和 collision resistance 不矛盾。

不过 MD5 已经不是 collision-resistant hash function 了,恶意碰撞可行,所以不宜使用。
kaiki
2020 年 12 月 27 日
@3dwelcome 所以我记录什么和查询什么才能最效率的识别已存在内容呢?以及标识用什么方法生成
gunpowderfans
2020 年 12 月 27 日
同时校验多种 hash 也许可以
kaiki
2020 年 12 月 27 日
@gunpowderfans 校验的话倒是可以多种,校验哪些数据呢?
url 中就得有一个唯一标识了,这个怎么算呢?
gyf304
2020 年 12 月 27 日
LimeQAQ
2020 年 12 月 27 日
昨天刚试了两张图片 md5 相同的情况,第二张上传到百度网盘,打开变成了第一张图片。惊不惊喜,意不意外。
imgbed
2020 年 12 月 27 日
看你有多少文件,如果不大,不需要考虑极小概率
QingXuJiaZhi
2020 年 12 月 27 日
用 sha256
JinTianYi456
2020 年 12 月 27 日
@3dwelcome #1 加上大小也可能一样 /t/169241

@kaiki 月经问题 /t/733384
crab
2020 年 12 月 27 日
可以用 sha1+文件大小
Daming
2020 年 12 月 27 日
布隆过滤器还要多个 hash 呢,还不保证一定存在。
只用 md5 岂不是更不保险。
riggzh
2020 年 12 月 27 日
任天堂使用的是 sha256 然后截取前 16 位
YouLMAO
2020 年 12 月 27 日
md5 破解第一人应该是哈工大,活该被制裁
dethan
2020 年 12 月 27 日
@YouLMAO 你这是什么脑残言论?我上网这么久,真的是第一次喷人,太傻逼了
QingXuJiaZhi
2020 年 12 月 27 日
看这里 https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest

md5 早已被证明碰撞风险太大,而 sha-1 则是 is now considered vulnerable (脆弱的、易受攻击的)。

一般来说 sha256 够用了,则在不行还可以考虑用 sha-384 甚至 sha-512
unixeno
2020 年 12 月 27 日
建议用 sha256
lysS
2020 年 12 月 27 日
@LimeQAQ 所以怎么得到两张一样 md5 的照片喃?
ThirdFlame
2020 年 12 月 27 日
sha256 + 文件大小 目前可靠的。
就个人 /企业使用 md5 + 文件大小 实际上也是没啥问题的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/739305

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX