【发布时间】:2015-06-07 00:46:18
【问题描述】:
我正在检查 bcrypt 哈希算法。
我第一次使用 password_hash() 测试:
echo password_hash("123", PASSWORD_BCRYPT, array( "salt" => "1234567890123456789012" ));
echo password_hash("123", PASSWORD_BCRYPT, array( "salt" => "1234567890123456789012xxxxxxxxxxxxxxx" ));
两者都将返回“$2y$10$123456789012345678901uiaLpJxTpf6VbfI5NADlsRsfvEm6aq9C”。
- 为什么盐存储在哈希中?这对我来说完全没有意义。从数据库中获取哈希值的攻击者如果不知道盐值,就无法对它们进行任何操作。
- 为什么使用两种不同的盐得到相同的哈希?是否只有前 22 个字符用于传递给函数的盐?
非常感谢!
【问题讨论】: