使用PHPass检查密码问题

时间:2013-04-08 09:33:05

标签: php phpass

我正在使用phpass进行密码加密。当我添加用户时,密码将被哈希并存储在数据库中。但是,当我尝试使用存储在数据库中的用户凭据进行日志记录时,checkpassword将返回一个空字符串。下面给出的是我用来检查密码的代码。

    function PackageAccess($username,$password)
    {
        $db = new mysqli(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME) or die("Could not Connect");
        $hasher = new PasswordHash(8,FALSE);
        $accessvalue = 0;
        $query = "select passwrd from usermaster where username=?";
        if ($stmt=$db->prepare($query))
        {
            $stmt->bind_param("s",$username);
            $stmt->execute();
            $stmt->bind_result($a);
            while($stmt->fetch())
            {
                if($hasher->CheckPassword($password,$a))
                {
                    $accessvalue = 1;
                }
                else
                    {
                        $accessvalue = 0;
                    }
            }
            $stmt->close();
        }
        $db->close();
        $hasher = null;
        return $accessvalue;
    }

这段代码总是给我一个空字符串,既不是真也不是假。希望有人能对此有所了解。

0 个答案:

没有答案