Я пытаюсь настроить регистрационную форму с PHP и sql и для защиты паролем. Я использую password_hash() и password_verify(). Функция password_hash() работает нормально, но когда я пытаюсь проверить пароль с password_verify() хешированным паролем, он возвращает FALSE. Я новичок в PHP и не знаю, почему это происходит.
Вот код:
PHP password_verify не дешифрование?
<?php
include 'db.php';
$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, ($_POST['password']));
$sql = "SELECT * FROM users WHERE `username`= '$username' ";
$query = mysqli_query($con, $sql);
while ($rows = mysqli_fetch_array($query)):
$user = $rows['username'];
$email = $rows['email'];
$passhash = $rows['password'];
endwhile;
$hash = password_verify($password, $passhash);
// just echoing so i know they are the correct values
echo $user.'<br>';
echo $email.'<br>';
echo $password.'<br>';
echo $hash.'<br>';
echo $passhash.'<br>';
if ($hash == 0) {
echo 'error';
}
?>
EDIT: Заменено 'dehashed' с правильными условиями.
Не все ли смысл хэшировать пароль, чтобы он не мог быть отменен (или деактивирован, как вы его называете)? –
Дехаш? Интересно .... Хэш не обратимо ... – Selvin
Errrr ......... что? DEhashing? когда-либо пытались вернуть быка обратно после того, как его убили и посадили в говядину? хорошо, что вы идете. –