我正在使用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;
}
这段代码总是给我一个空字符串,既不是真也不是假。希望有人能对此有所了解。