https://github.com/ircmaxell/password_compat
我正在使用上面的库向我的网站实施bcrypt。如描述中所述,password_verify()可用于检查密码是否对应于特定散列。这是我在用户登录时应该使用的内容吗?获取他们输入的密码并将其与数据库中的哈希进行比较?
问题二,腌制进来的地方?我不需要为每个用户在数据库中存储盐吗?
答案 0 :(得分:2)
是的,password_verify
是用于根据其哈希版本验证明文密码的函数。
Salting已经是流程的一部分,生成的哈希包含一个随机盐。您无需手动执行此操作。
确实如此简单:
$registeredPassword = 'password';
$hashedPassword = password_hash($registeredPassword);
// store $hashedPassword in database...
$enteredPassword = 'password';
if (password_verify($enteredPassword, $hashedPassword)) {
// login successful
}
password_hash
实现负责安全盐析和散列。请务必阅读手册及其示例和说明:http://php.net/manual/en/function.password-hash.php,http://php.net/manual/en/function.password-verify.php