首页 文章

什么是盐轮以及盐如何储存在Bcrypt中?

提问于
浏览
14

我正在尝试为我正在制作的节点应用程序配置Bcrypt,并且有几个关于盐的问题,我希望有人可以帮助我们回答 .

  • 什么是盐'round'?例如,在github docs(https://github.com/kelektiv/node.bcrypt.js/)中,它使用了一轮10的盐 . 这究竟是什么意思?

  • Bcrypt生成的盐总是一样吗?例如,如果我将用户的散列密码保存到数据库,那么它用于散列密码的盐是否与每个密码相同?

  • 如何储存盐?是否可以抵御潜在的攻击?

1 回答

  • 16
    • 对于"salt round",它们实际上是指成本因素 . 成本因子控制计算单个BCrypt哈希所需的时间 . 成本因素越高,散列轮次就越多 . 将成本系数提高1可使所需时间增加一倍 . 需要的时间越多,蛮力就越难 .

    • salt是一个随机值,并且每次计算都应该不同,因此即使对于相同的密码,结果也应该几乎不相同 .

    • salt通常以可读的形式包含在生成的哈希字符串中 . 因此,通过存储哈希字符串,您还可以存储盐 . 有关详细信息,请查看此answer .

相关问题