php /获取无效密码的password_hash()函数

时间:2016-08-21 09:29:44

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

运行此代码后,我的密码无效。为什么密码与散列密码不匹配?

<?php
    $passwd = "imad";
    $hash = password_hash($passwd,PASSWORD_DEFAULT,['cost'=>10]);
    echo "$passwd".' :'.$hash."<br/><br/>";


    if (password_verify($passwd, $hash,['cost'=>10])) {
        echo 'Password is valid!';
    }   else {
        echo 'Invalid password.';
    }
?>

1 个答案:

答案 0 :(得分:0)

password_verify只需要2个参数。

所以你需要做的只是:

if(password_verify($passwd, $hash)) { ... }

以上代码可以缩短为:

(password_verify($passwd, $hash)) ? : echo "Password is valid!" : echo "Password is invalid."

使用ternary operators

同样转向error_reporting是一个好主意,通常是在开发时。

所以说:

ini_set("display_errors", "1");
error_reporting(E_ALL);

位于文件顶部。

当你要将它移到生产阶段时,将它们移除。