我正在使用Yii 2
我正在进行登录过程,我知道您可以使用validatePassword方法来比较它们,但这需要您从数据库中获取哈希值
有没有办法可以将用户密码输入转换为具有正确盐的哈希值,以便您可以将密码与数据库查询进行比较,例如:
SELECT COUNT(*) FROM users WHERE username=:username AND password=:password LIMIT 1
// other code
答案 0 :(得分:1)
看一下这部分
https://github.com/yiisoft/yii2/blob/master/framework/base/Security.php#L556
密码策略默认为crypt
所以你有这个功能validatePassword($password, $hash)
$test = crypt($password, $hash);
$n = strlen($test);
if ($n !== 60) {
return false;
}
return $this->compareString($test, $hash);
您应该可以从此处获取密码的哈希版本。我相信测试将是哈希版本