使用Yii 2登录 - 将用户密码输入与存储的哈希进行比较

时间:2014-12-22 10:24:07

标签: php yii2

我正在使用Yii 2我正在进行登录过程,我知道您可以使用validatePassword方法来比较它们,但这需要您从数据库中获取哈希值

有没有办法可以将用户密码输入转换为具有正确盐的哈希值,以便您可以将密码与数据库查询进行比较,例如:

SELECT COUNT(*) FROM users WHERE username=:username AND password=:password LIMIT 1
// other code

1 个答案:

答案 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);

您应该可以从此处获取密码的哈希版本。我相信测试将是哈希版本