【问题标题】:How does Node bcrypt hashing/compare work since the salt is unknown由于盐是未知的,Node bcrypt 散列/比较如何工作
【发布时间】:2018-03-08 19:21:21
【问题描述】:

我正在查看 bcrypt 文档中的代码示例:

bcrypt.hash(myPlaintextPassword, saltRounds, function(err, hash) {
  // Store hash in your password DB.
});

我不明白的是,如果我不知道盐,我该如何比较密码?

bcrypt.compare(myPlaintextPassword, hash, function(err, res) {
    // res == true
});

经过阅读,我了解到hash 已经包含盐和成本。但如果是这样的话,一旦黑客获得了这个哈希值,他就已经可以使用彩虹表或其他东西来暴力破解密码?

单独存储哈希和盐是否更好?

这是一种安全的密码处理方式吗?

【问题讨论】:

    标签: node.js bcrypt


    【解决方案1】:

    您误解了盐提供的安全性。没有期望或意图将盐对攻击者保密——如果攻击者获得散列密码,他们也会得到盐。但它仍然阻止他们使用彩虹表或其他预先计算的攻击,因为他们不会有使用该特定盐生成的彩虹表。他们当然可以进行蛮力攻击,但 bcrypt 有其他功能让这变得困难。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 2011-02-21
      • 2019-07-10
      • 2014-09-09
      • 2019-05-17
      • 2017-09-16
      相关资源
      最近更新 更多