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