SHA1 相比 MD5 有什么优势吗?

2018-06-12 22:25:37 +08:00
 mokeyjay

我没记错的话,以前看到的文件下载一般会配上 MD5 值,但是近几年似乎都变成 SHA1 居多了。虽然作用是相同的,但为什么用 SHA1 的越来越多了呢?(在我看到的里面

25271 次点击
所在节点    问与答
16 条回复
idhrwb01296
2018-06-12 22:32:56 +08:00
md5 容易碰撞
ooh
2018-06-12 22:33:34 +08:00
更安全,为什么不 Google 一下呢
qq316107934
2018-06-12 22:34:01 +08:00
现在防碰撞很多是 SHA1+MD5
mokeyjay
2018-06-12 22:37:39 +08:00
@ooh #2 简单 google 了一下都是些长篇大论,没有简单一两句话表达的
dlsflh
2018-06-12 22:38:30 +08:00
md5 前段时间不是被 Google 破解了吗
MrGba2z
2018-06-12 22:44:41 +08:00
dobelee
2018-06-12 22:49:04 +08:00
sha1 摘要比 md5 要长,前者 160bit,后者 128bit,因此 sha1 碰撞的难度略高于 md5,但是计算时长也增加了三分之一。
(以上是道听途说,本人没有验证过🤷)
Antidictator
2018-06-12 22:52:32 +08:00
@dlsflh 不是 sha1 吗😂😂😂
neighbads
2018-06-12 22:56:56 +08:00
都是哈希算法 安全性更高了 ,更高的还有 sha224 sha256 sha512 以及咱们国家自己的 sm3
Kobayashi
2018-06-12 22:57:18 +08:00
用来验证下载文件,又不是用来加密,能有个毛线的区别。
vegito2002
2018-06-12 23:57:55 +08:00
微软 Flame attack 了解一些: https://threatpost.com/microsoft-details-flame-hash-collision-attack-060612/76658/

即使是用来验证, 也是可能搞事情的
breeswish
2018-06-13 00:04:48 +08:00
md5 几分钟就能碰撞出来了,没有安全性。sha1 目前碰撞难度也不是那么高,不再安全。请用 sha256。
presoul
2018-06-13 07:09:33 +08:00
验证下载文件完整性 ...
感受不到区别
duumvir
2018-06-13 14:47:09 +08:00
求安全准确的话,用 sha256
凑合的用的话,md5
其实 md5 和 sha1 严格的说应该淘汰了。
jininij
2018-06-13 16:53:18 +08:00
另外说一下。一般所说的 sha256,是 sha2 的一个子集:即输出长度为 256 位的 sha2。同样的,还有 sha224, sha384,sha512。sha2 目前没有明显漏洞。但新的软件建议使用新的 sha3。有更高的性能和安全性。

一个安全的哈希算法,假如生成的结果是 128 位,那么要猜它的一个原文,需要 2^128 次尝试。构造一次碰撞(生日碰撞),需要尝试 2^64 次。
如果需要的次数少于这个值,那么这个算法就被宣告破解。

md5 和 sha1 都是被破解了的。sha1 还是上个世纪的作品。md5 的碰撞复杂度只有 2^20,sha1 的碰撞复杂度约 2^63。
这个数的平方——构造一个有指定哈希结果的原文的复杂度——仍然很大。几乎很难被利用。在某些场景下仍然勉强可以用。

但还是建议使用更新的 sha2 或者 sha3。同时,sha2,sha3 的输出长度都是可调整的。sha3 还有更多可配置的安全特性,可以保证你的算法安全。
l2dy
2018-06-21 13:54:11 +08:00
@MrGba2z 这个图有点老,现在已经有针对 SHA1 的 SHAttered 攻击了[1]。所以现在的趋势是转向 SHA-256 或更强的,例如 PyPI 以前只提供 MD5,现在改成 SHA-256 了[2]; pip 的验证哈希模式不支持较弱的 md5, sha1, sha224,只支持 SHA-256 或更强的哈希算法[3]。

[1]: https://shattered.io/
[2]: https://pypi.org/project/pip/#files
[3]: https://pip.pypa.io/en/stable/reference/pip_install/#hash-checking-mode

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

https://www.v2ex.com/t/462606

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

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

© 2021 V2EX