我应该如何检查散列密码

How should i check hashed passwords

我使用 crypt ( password , $2y$10$predefinedsalt) 来生成散列..是否可以使用普通的 if 将它们与其他散列进行检查?

$password = crypt ( password , y$predefinedsalt);
$password2 -> from database)
if(password == password2)
{
     then do something
}

是的,这就是密码验证的大致方式。

您存储经过哈希处理的原始密码,并在登录时使用相同的 options/hash 对输入的密码进行哈希处理,并将其与您之前存储的密码进行比较

PHP 建议使用 hash_equals() 来缓解定时攻击。像这样:

return hash_equals($hash, crypt($password, $salt));