
在用 cf workers 做一个小东西,按照惯性就直接 bcrypt 了。
但是 bcrypt 未必能在所有环境运行、也很费资源。比如在 workers 环境就无法运行。
我就在想了,加密的这么强,其实未必有人能找到门来破。即使找到门了也未必值得。 如果原本的明文密码够强,其实 md5 方式存储也没有什么问题吧?
验证的时候就再 md5 一遍,然后看结果是不是一样就行。
而且这个前提这是个管理员路由,所以不能有 123456 这样的密码。
不需要加盐,下面这就是一个 bitwarden 生成的 14 位密码,在https://emn178.github.io/online-tools/sha256.html 使用 sha256 加密后的结果:b0e1052bec47b3384e9f5e74d1f22b8c1151f810371eb66cf4591797410da8d6
如果它不是安全的,我很好奇 decrypt 的过程
1 Dragonish3600 2023 年 9 月 27 日 md5 加密强? |
3 someonedeng 2023 年 9 月 27 日 啊 |
4 ysc3839 2023 年 9 月 27 日 via Android 没有纯 js 实现的 bcrypt 等算法吗? |
5 crysislinux 2023 年 9 月 27 日 via Android 先不说 md5 有没有问题,你这样没盐啊 |
6 ThirdFlame 2023 年 9 月 27 日 哈希存储只是为了防止看到明文密码 或者 不能简单的通过哈希反查明文。 建议上加盐后 sha256 当然如果只是自己用的小东西,那你哈希不哈希都没啥意义。 |
7 superares 2023 年 9 月 27 日 via iPhone md5 弱不是因为原始密码弱,是它能碰撞出来,你设置一个 20 位的原始密码,我用个 6 位的碰撞出来就行,不需要知道原始的。 加强原始密码的目的只是为了不出现在彩虹表中 |
8 cmdOptionKana 2023 年 9 月 27 日 听起来像单用户?单用户(或少量可控用户)用明文都可以,只要是个随机生成的密码就行。加盐之类的一般主要是为了万一被拖库时有多一层保护。 |
9 hyperbin 2023 年 9 月 27 日 via Android 穷举速度快,任意碰撞已有先例,密码推荐使用慢哈希算法 |
10 witcat OP @cmdOptionKana 有价值回答 |
11 bianhui 2023 年 9 月 27 日 对,加密只是防止存的是明文,就安全的角度来说,传输和存储过程中的安全远大于这个 |
14 expy 2023 年 9 月 27 日 argon2 bcrypt 专门设计成计算耗时长,内存占用大。万一被脱库也很难暴力遍历来找出明文密码。 md5 和 sha 系列计算太快了,你这还不加盐,直接彩虹表查表就能攻击了。 |