我没记错的话,以前看到的文件下载一般会配上 MD5 值,但是近几年似乎都变成 SHA1 居多了。虽然作用是相同的,但为什么用 SHA1 的越来越多了呢?(在我看到的里面
1
idhrwb01296 2018-06-12 22:32:56 +08:00 via Android
md5 容易碰撞
|
2
ooh 2018-06-12 22:33:34 +08:00
更安全,为什么不 Google 一下呢
|
3
qq316107934 2018-06-12 22:34:01 +08:00 via Android
现在防碰撞很多是 SHA1+MD5
|
5
dlsflh 2018-06-12 22:38:30 +08:00 via Android
md5 前段时间不是被 Google 破解了吗
|
6
MrGba2z 2018-06-12 22:44:41 +08:00 1
|
7
dobelee 2018-06-12 22:49:04 +08:00 via Android
sha1 摘要比 md5 要长,前者 160bit,后者 128bit,因此 sha1 碰撞的难度略高于 md5,但是计算时长也增加了三分之一。
(以上是道听途说,本人没有验证过🤷) |
8
Antidictator 2018-06-12 22:52:32 +08:00 via iPhone
@dlsflh 不是 sha1 吗😂😂😂
|
9
neighbads 2018-06-12 22:56:56 +08:00 via Android
都是哈希算法 安全性更高了 ,更高的还有 sha224 sha256 sha512 以及咱们国家自己的 sm3
|
10
Kobayashi 2018-06-12 22:57:18 +08:00 via Android
用来验证下载文件,又不是用来加密,能有个毛线的区别。
|
11
vegito2002 2018-06-12 23:57:55 +08:00
微软 Flame attack 了解一些: https://threatpost.com/microsoft-details-flame-hash-collision-attack-060612/76658/
即使是用来验证, 也是可能搞事情的 |
12
breeswish 2018-06-13 00:04:48 +08:00
md5 几分钟就能碰撞出来了,没有安全性。sha1 目前碰撞难度也不是那么高,不再安全。请用 sha256。
|
13
presoul 2018-06-13 07:09:33 +08:00 via Android
验证下载文件完整性 ...
感受不到区别 |
14
duumvir 2018-06-13 14:47:09 +08:00
求安全准确的话,用 sha256
凑合的用的话,md5 其实 md5 和 sha1 严格的说应该淘汰了。 |
15
jininij 2018-06-13 16:53:18 +08:00 via iPhone
另外说一下。一般所说的 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 还有更多可配置的安全特性,可以保证你的算法安全。 |
16
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 |