V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
witcat
V2EX  ›  程序员

md5 方式存储密码会有什么问题吗

  •  
  •   witcat · 2023-09-27 07:44:34 +08:00 · 986 次点击
    这是一个创建于 449 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在用 cf workers 做一个小东西,按照惯性就直接 bcrypt 了。
    但是 bcrypt 未必能在所有环境运行、也很费资源。比如在 workers 环境就无法运行。

    我就在想了,加密的这么强,其实未必有人能找到门来破。即使找到门了也未必值得。 如果原本的明文密码够强,其实 md5 方式存储也没有什么问题吧?
    验证的时候就再 md5 一遍,然后看结果是不是一样就行。

    而且这个前提这是个管理员路由,所以不能有 123456 这样的密码。

    第 1 条附言  ·  2023-09-27 08:17:25 +08:00

    不需要加盐,下面这就是一个 bitwarden 生成的 14 位密码,在https://emn178.github.io/online-tools/sha256.html 使用 sha256 加密后的结果:b0e1052bec47b3384e9f5e74d1f22b8c1151f810371eb66cf4591797410da8d6

    如果它不是安全的,我很好奇 decrypt 的过程

    第 2 条附言  ·  2023-09-27 08:29:00 +08:00
    看了大家回答我觉得在用户量不多的情况下 sha-256 hash 存储/比对没有任何问题哦,此贴已下沉。
    ladypxy
        1
    ladypxy  
       2023-09-27 07:59:18 +08:00
    md5 加密强?
    witcat
        2
    witcat  
    OP
       2023-09-27 08:02:09 +08:00
    @ladypxy 那就 SHA-256
    someonedeng
        3
    someonedeng  
       2023-09-27 08:04:40 +08:00
    ysc3839
        4
    ysc3839  
       2023-09-27 08:06:56 +08:00 via Android
    没有纯 js 实现的 bcrypt 等算法吗?
    crysislinux
        5
    crysislinux  
       2023-09-27 08:08:24 +08:00 via Android
    先不说 md5 有没有问题,你这样没盐啊
    ThirdFlame
        6
    ThirdFlame  
       2023-09-27 08:10:34 +08:00
    哈希存储只是为了防止看到明文密码 或者 不能简单的通过哈希反查明文。

    建议上加盐后 sha256 当然如果只是自己用的小东西,那你哈希不哈希都没啥意义。
    superares
        7
    superares  
       2023-09-27 08:12:13 +08:00 via iPhone
    md5 弱不是因为原始密码弱,是它能碰撞出来,你设置一个 20 位的原始密码,我用个 6 位的碰撞出来就行,不需要知道原始的。 加强原始密码的目的只是为了不出现在彩虹表中
    cmdOptionKana
        8
    cmdOptionKana  
       2023-09-27 08:14:15 +08:00   ❤️ 1
    听起来像单用户?单用户(或少量可控用户)用明文都可以,只要是个随机生成的密码就行。加盐之类的一般主要是为了万一被拖库时有多一层保护。
    hyperbin
        9
    hyperbin  
       2023-09-27 08:15:09 +08:00 via Android
    穷举速度快,任意碰撞已有先例,密码推荐使用慢哈希算法
    witcat
        10
    witcat  
    OP
       2023-09-27 08:18:34 +08:00
    @cmdOptionKana 有价值回答
    bianhui
        11
    bianhui  
       2023-09-27 08:19:49 +08:00
    对,加密只是防止存的是明文,就安全的角度来说,传输和存储过程中的安全远大于这个
    rocmax
        12
    rocmax  
       2023-09-27 08:20:37 +08:00 via Android
    @superares 所谓的 md5 碰撞是说在已知原文的基础上可以根据公式构造出另一段 md5 相同的信息。
    xbird
        13
    xbird  
       2023-09-27 08:23:37 +08:00
    cmd5.org 可以撞出来,如果密码强度不高或者被收录过

    不过不止 md5 会有这种缺点,别的也有,md5 比较古老了,建议还是用别的
    expy
        14
    expy  
       2023-09-27 08:39:57 +08:00
    argon2 bcrypt 专门设计成计算耗时长,内存占用大。万一被脱库也很难暴力遍历来找出明文密码。

    md5 和 sha 系列计算太快了,你这还不加盐,直接彩虹表查表就能攻击了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1438 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:58 · PVG 07:58 · LAX 15:58 · JFK 18:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.