PHP 5.5 Password_Verify从数据库中提取数据时不起作用

时间:2015-09-17 13:28:08

标签: php mysql database passwords verify

我打算使用password_hashpassword_verify函数来安全地存储密码。

当我使用下面的那个时。这工作

$hash = password_hash('test',PASSWORD_DEFAULT); 
$state= password_verify('test',$hash);

if($state){
    echo "OK";
}
else{
    echo "No!";
}

但是当我尝试将密码写入数据库并从中获取密码时。它没有用。

$Pass= password_hash($pass,PASSWORD_DEFAULT);
$query= "INSERT INTO user(email, password) VALUES('$Email','$Pass')";
mysqli_query($link,$query);

$query= "SELECT password FROM user WHERE email='example@example.com'";
if($result=mysqli_query($link,$query)){
         $Array=mysqli_fetch_array($result);
         $isComplete=password_verify($pass,$Array[1]);  
         if($isComplete){
              echo "OK!"
         }else{
              echo "Not OK!";
         }
}

那是我的专栏

enter image description here

1 个答案:

答案 0 :(得分:1)

密码位于$Array[0]而非$Array[1]

但是你绝对应该使用Prepared Statements来保护你的应用程序免受潜在的SQL注入攻击