V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mokeyjay
V2EX  ›  问与答

SHA1 相比 MD5 有什么优势吗?

  •  
  •   mokeyjay · 2018-06-12 22:25:37 +08:00 · 25279 次点击
    这是一个创建于 2360 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    即使是用来验证, 也是可能搞事情的
    breeswish
        12
    breeswish  
       2018-06-13 00:04:48 +08:00
    md5 几分钟就能碰撞出来了,没有安全性。sha1 目前碰撞难度也不是那么高,不再安全。请用 sha256。
    presoul
        13
    presoul  
       2018-06-13 07:09:33 +08:00 via Android
    验证下载文件完整性 ...
    感受不到区别
    duumvir
        14
    duumvir  
       2018-06-13 14:47:09 +08:00
    求安全准确的话,用 sha256
    凑合的用的话,md5
    其实 md5 和 sha1 严格的说应该淘汰了。
    jininij
        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 还有更多可配置的安全特性,可以保证你的算法安全。
    l2dy
        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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5208 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 01:13 · PVG 09:13 · LAX 17:13 · JFK 20:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.