PHP 5.5密码\u从数据库提取数据时验证不起作用
我打算使用PHP 5.5密码\u从数据库提取数据时验证不起作用,php,mysql,database,passwords,verify,Php,Mysql,Database,Passwords,Verify,我打算使用password\u hash和password\u verify函数安全存储密码 当我使用下面的一个。行得通 $hash = password_hash('test',PASSWORD_DEFAULT); $state= password_verify('test',$hash); if($state){ echo "OK"; } else{ echo "No!"; } 但当我尝试将密码写入数据库并从中获取密码时。它不起作用 $Pass= password_ha
password\u hash
和password\u 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!";
}
}
那是我的专栏
密码在
$Array[0]
中,而不是$Array[1]
中
但是,您肯定应该使用来保护您的应用程序免受潜在的SQL注入攻击请发布从数据库检索密码的代码,tooI添加了数据库代码感谢@dimlucas的贡献,但问题不在于此。我打印了数组[1],密码在里面。然后尝试将数据库的排序规则更改为“utf8\u general\u ci”