我正在用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)){}
答案 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'])){}
它为你做了所有的重复。