Привет, я пытаюсь использовать мои пароли с паролем password_hash() в PHP. Эта часть прекрасно, но для сравнения хэш возвращает ложь, несмотря ни на что. Для того, чтобы войти проверить базу данных учетных записей пользователей и захватить хэш пароля затем сравнить его с паролем, набранного в Мой код выглядит следующим образом:.PHP password_verify всегда возвращает false
$password = $_SERVER["PHP_AUTH_PW"];
$hash = $row["password"];
if (password_verify($password, $hash)) {
// CREATE SESSION VARIABLES //
}
else{
header("HTTP/1.1 404 Not Found");
}
Как вы можете видеть пароль, набранный привезены в HTTP-заголовок. Я не думал, что это испортит строку пароля, поскольку я могу сравнить это непосредственно с паролем в базе данных (без хеширования). Есть идеи? Я трижды проверил мою версию PHP, и я могу хэш-пароль, так что это не так.
Вы проверили, что аргументы, которые вы даете 'password_verify', являются тем, что вы ожидаете от них? – Flosculus
ну пароль в базе данных был хэширован с помощью функции password_hash(). Затем это идентифицируется и захватывается введенным именем пользователя и вводится идентификатор компании. Затем введенный пароль сравнивается с хешированным паролем с помощью функции password_verify(). однако он всегда возвращает false – Aaron
Нет. Я имею в виду, что вы проверили вручную и удостоверились, что значения '$ password' и' $ hash' являются правильными значениями, полученными, независимо от того, проверяются они или нет. – Flosculus