是否建议直接在DB中存储Bcrypt哈希密码?

时间:2014-06-23 13:40:21

标签: php hash bcrypt

因为哈希字符串的格式($ 2y $ 10 $ salt ....)本身给黑客提供了线索(即攻击数据库的人),加密是使用Bcrypt算法完成的,所以他可以通过使用password_verify轻松破解()在php中通过传递参数作为他的猜测密码。

1 个答案:

答案 0 :(得分:0)

将这些BCrypt哈希直接存储在数据库中没有任何缺点,没有一个参数是秘密的。此外,他们允许切换到更好的算法(或增加成本因素​​),而不会与旧的哈希不兼容。

如果以某种方式隐藏这些参数,攻击者就必须猜测它们。但是没有这么多可能的价值,例如成本因素,只有在9-13之间才有意义。如果你真的想要添加这样的服务器端密钥,那么有更好的方法来实现它。您可以使用强密钥对已经散列的值进行加密(双向),然后攻击者必须“猜测”此密钥,这是不可能的。