我使用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;
}
此代码总是给我一个空字符串和非真非假。 希望有人能在此抛出一些轻。