Я намерен использовать password_hash
а также password_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='[email protected]'";
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-инъекций
Других решений пока нет …