【问题标题】:password_verify does not seem to workpassword_verify 似乎不起作用
【发布时间】:2015-11-16 11:39:57
【问题描述】:

我对 password_hash 和 verify 函数完全陌生,但我已经阅读了默认 php 网站上有关它们的文档。当我使用 password_hash 对密码进行哈希处理时,我在登录时遇到问题。它们已经在数据库中进行了哈希处理。

这是我用来验证表单中输入的密码是否与数据库中的哈希匹配的代码(已在注册表单中使用 password_hash 生成):

    $username = $kunaiDB->real_escape_string($_POST["uname"]);
    $password = $kunaiDB->real_escape_string($_POST["pword"]);

    $kunaiLoginQuery = "SELECT * FROM kunai_users";

    $kunaiLoginQueryResult = $kunaiDB->query($kunaiLoginQuery);
    $controlhash = $kunaiLoginQueryResult->fetch_array();
    $db_pw_res = $controlhash["user_pw"];

    if(password_verify($password, $db_pw_res)) {
        echo "Passwords match!";
    } else { echo "Passwords do not match!"; }

每当我登录时,它都会失败。我试图寻找类似的解决方案,但到目前为止我还没有找到任何有效的解决方案。感谢所有帮助:-)

【问题讨论】:

    标签: php hash password-hash


    【解决方案1】:

    他们的 SQL 查询有误。添加WHERE 子句。 像这样的

    SELECT * from table_name WHERE user_name_field = '{$username}'
    

    而不是

    $controlhash = $kunaiLoginQueryResult->fetch_array();
    

    键入

    $controlhash = $kunaiLoginQueryResult->fetch_assoc(); 
    

    【讨论】:

    • 欢迎您。考虑投票并将答案标记为正确。
    猜你喜欢
    • 1970-01-01
    • 2016-11-29
    • 2016-02-01
    • 2020-09-23
    • 2010-12-05
    • 2011-06-14
    • 2015-01-10
    • 2016-02-24
    • 2011-01-18
    相关资源
    最近更新 更多