我正在尝试为一个node应用配置Bcrypt,并且有几个关于盐(salt)的问题,希望这里的某个人能够友好地回答。
什么是盐“轮回”(salt round)? 例如,在github文档(https://github.com/kelektiv/node.bcrypt.js/)中,它使用了10个盐轮回。这到底意味着什么?
Bcrypt生成的盐是否总是相同的?例如,如果我将用户的哈希密码保存到数据库中,用于哈希密码的盐是否对每个密码都相同?
盐是如何存储的?它是否安全,可以防范潜在攻击?
我正在尝试为一个node应用配置Bcrypt,并且有几个关于盐(salt)的问题,希望这里的某个人能够友好地回答。
什么是盐“轮回”(salt round)? 例如,在github文档(https://github.com/kelektiv/node.bcrypt.js/)中,它使用了10个盐轮回。这到底意味着什么?
Bcrypt生成的盐是否总是相同的?例如,如果我将用户的哈希密码保存到数据库中,用于哈希密码的盐是否对每个密码都相同?
盐是如何存储的?它是否安全,可以防范潜在攻击?
在哈希值中仅包含Salt,比较时无需记住Salt。
var myPlaintextPassword='Saifio';
var saltRounds = 10;
const hash = bcrypt.hashSync(myPlaintextPassword, saltRounds);
$2b$10$nOUIs5kJ7naTuTFkBy1veuK0kSxUFXfuaOKdOKf9xYT0KKIGSJwFa
| | | | | | | 哈希值 = K0kSxUFXfuaOKdOKf9xYT0KKIGSJwFa | | | | | 盐值 = nOUIs5kJ7naTuTFkBy1veu | | | 迭代次数 = 10 = 2^10 次迭代 | 哈希算法 = 2b = BCrypt