Password_verify说密码不正确

时间:2018-03-02 02:54:10

标签: php

我正在用PHP编写一个登录信息,即使我知道它是正确的,密码也是错误的。

我使用此

分配我的变量
$password = trim($_POST['password']);
$user_password = $user['password']; //Hashed password from database
$salt = '-45dfeHK/__yu349@-/klF21-1_\/4JkUP/4';
$hashed_password = hash(sha256, $password . $salt);

我通过

检查密码
if(password_verify($user_password, $hashed_password)){}

但它返回false但是如果我使用

if($user_password == $hashed_password){}

它工作正常。

编辑:

$password = trim($_POST['password']);
$user_password = $userdata['password'];
if(password_verify($password, $user_password)){}

1 个答案:

答案 0 :(得分:1)

如果使用$user_password创建hash()它不起作用,则需要使用crypt()或最好password_hash创建。如果你的卡住了使用当前hash()创建的密码,您只能使用password_verify,但我建议您尽快切换到此系统。

password_verify要求用户密码取消散列https://secure.php.net/manual/en/function.password-verify.php

$user_password=trim($_POST['password'])

if(password_verify($user_password, $user['password'])){}

它为你做了所有的重复。