/ / PHP password_verify retournant toujours false - php, connexion, mots de passe, authentification de base

PHP password_verify renvoie toujours false - php, connexion, mots de passe, authentification de base

Salut, je suis en train de hacher mes mots de passe avecpassword_hash () en PHP. Cette partie est correcte, mais comparer le hash revient à faux, quoi qu’il en soit. Pour me connecter, je vérifie la base de données du compte utilisateur et récupère le mot de passe haché, puis je le compare au mot de passe saisi. Mon code se présente comme suit:

$password = $_SERVER["PHP_AUTH_PW"];
$hash = $row["password"];
if (password_verify($password, $hash)) {
// CREATE SESSION VARIABLES //
}
else{
header("HTTP/1.1 404 Not Found");
}

Comme vous pouvez le voir, le mot de passe saisi estapporté dans l'en-tête HTTP. Je ne pensais pas que cela dérangerait la chaîne de mot de passe car je pouvais le comparer directement au mot de passe de la base de données (sans hachage). Vous avez des idées? J'ai vérifié trois fois ma version de PHP et je peux hacher le mot de passe de sorte que pas.

Réponses:

2 pour la réponse № 1

Donc rien à redire avec la fonction password_verify (). Il y avait un peu de chaîne ajoutée dans la fonction password_hash (). J'ai copié et collé cette fonction à partir de la documentation officielle:

echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT)."n";

Le bit "n" à la fin n'était pas pris en compte par la fonction de vérification. C'était seulement ici à cause de l'adaptation et du collage, donc une fois que je l'ai enlevé, tout s'est bien passé. J'espère que cela aidera les autres à l'avenir.