bcrypt怎么会有内置的盐类呢?
尾黑尔文章“如何安全地存储密码”声称:
bcrypt有内置的盐类以防止彩虹桌的攻击。
他引用本文,在OpenBSD的实现中bcrypt
:
OpenBSD生成128位的bcrypt盐分,它是从一个弧四(arc4随机(3)密钥流中生成的,该密钥流带有内核从设备时间收集的随机数据。
我不明白这是怎么回事。在我对盐的概念中:
- 对于每个存储的密码,它需要不同,以便为每个密码生成一个单独的彩虹表。
- 它需要存储在某个地方,以便可以重复:当用户尝试登录时,我们会尝试他们的密码,重复我们最初存储他们密码时所做的盐类和散列过程,并进行比较。
当我用bcrypt使用Design(Rails登录管理器)时,数据库中没有盐列,所以我很困惑。如果盐是随机的,没有存储在任何地方,我们如何可靠地重复哈希过程?
总之,bcrypt怎么会有内置的盐类??