php更新后,password_hash()无法正常工作

时间:2015-10-25 14:22:45

标签: php password-hash php-password-hash

今天我们已将PHP从 5.5.7 更新为 5.6.13 ,并且password_hash()函数的所有密码哈希都已停止工作。

有没有关于为什么会发生这种情况的信息?我们做错了什么?

当我使用密码重置功能创建密码的新哈希时,它再次正常工作。

使用varchar(255)将密码存储在MySQL数据库中。使用的类是Passwords.php

身份验证如下所示:

// Try to find the user from database
$user = $this->getUser($email);

// If the provided password is invalid
if (!isset($user) || !$user->isPasswordValid($password)) {
    throw new AuthenticationException('portal.user.signInFailed');
}

isPasswordValid方法如下所示:

/**
 * Validate given User password.
 * @param  string  $value  Password to validate
 * @return bool
 */
public function isPasswordValid($value)
{
    return Passwords::verify($value, $this->password);
}

这就是我的散列函数的样子:

/**
 * Set and hash new password value.
 * @param  string  $value  New password
 * @return static
 */
public function setPassword($value)
{
    $this->password = Passwords::hash($value);
    return $this;
}

这是更新前(不工作)和密码重置(工作)之后的哈希

$2y$10$wMM1rXjwOIJb8Ga0L0mINevOvZxY4C2ebucBDNZ1P1dkp.J22KGzm
$2y$10$cr6HeWoS2MDxK1tbJvaEjefMiex1RgeG/JrHTrVznN2DeBPVJnVC.

我宁愿不给你密码:)

0 个答案:

没有答案