我正在尝试为我正在制作的节点应用配置Bcrypt,并且有几个关于盐的问题,我希望有人可以帮助回答。
什么是'圆''?例如,在github docs(https://github.com/kelektiv/node.bcrypt.js/)中,它使用了一个10的盐轮。这究竟是什么意思?
Bcrypt生成的盐总是一样吗?例如,如果我将用户的散列密码保存到数据库,那么用于散列密码的盐是否与每个密码相同?
如何储存盐?它是否可以抵御潜在的攻击?
答案 0 :(得分:21)
答案 1 :(得分:0)
盐仅包含在哈希中,我们在比较时无需记住。
var myPlaintextPassword='Saifio';
var saltRounds = 10;
const hash = bcrypt.hashSync(myPlaintextPassword, saltRounds);
$2b$10$nOUIs5kJ7naTuTFkBy1veuK0kSxUFXfuaOKdOKf9xYT0KKIGSJwFa
| | | | | | |哈希值= K0kSxUFXfuaOKdOKf9xYT0KKIGSJwFa | | | | |盐= nOUIs5kJ7naTuTFkBy1veu | | |成本系数= 10 = 2 ^ 10次迭代 | 哈希算法= 2b = BCrypt