【发布时间】:2012-08-02 15:46:38
【问题描述】:
我知道这是一个“过度询问”的话题,Bcrypt,但是我对它的安全性有一些担忧。
我一直在使用sha512($password.$salt),然后寻找更好的解决方案并遇到了Bcrypt。
我担心的是,在阅读它时,它说轮数 ($02$) 和盐存储在哈希中的 3 个单独的“块”中,就像这样,$rounds$.$salt.$hash(或者至少我就是这样已经解释过了)。
我的问题是:这不是不安全吗?显示使用的轮数,盐分清楚可用。因为攻击者可以说“好吧,我需要 2 轮,salt 是 123salt,这就是哈希”,对吧?
我明白阅读时,安全并不是“全部”,而是破解密码需要多长时间,这就是 Bcrypt 的好处,它很慢。
谁能澄清我的误解/误解?
谢谢。
【问题讨论】:
-
你现在如何储存盐?
-
SLaks,我目前将哈希插入 mysql 数据库 - 虽然我已经阅读 Bcrypt 已经包含盐,但我添加了另一个,就像这样 Bcrpyt($email.$random_salt.$password,14轮)并将结果插入数据库。 MathieuImbert - 我没有意识到。我确实检查了该框何时出现并说“类似问题”。
-
如果您已经将盐存放在那里,您还担心什么?
-
不太确定我是否理解您的问题,如果我误解了它,请见谅。我实际上并没有将随机盐存储在数据库中,而是将其包含在哈希中。如果你的意思是盐已经被展示了,我真的无能为力——这就是 Bcrypt 的“设计”。