Pourquoi password_verify renvoie-t-il False ?
Lorsque vous essayez de valider un mot de passe à l'aide de la fonction password_verify de PHP comme indiqué ci-dessous, vous pouvez rencontrer false points positifs :
if (password_verify($_POST['user_password'], $result_row->user_password_hash)) { // ... }
Cause :
Le problème provient probablement de la longueur de la colonne de hachage de votre mot de passe dans la base de données. Selon le manuel PHP, il est recommandé de stocker les hachages de mots de passe dans une colonne pouvant contenir au moins 255 caractères. Cela garantit la compatibilité avec l'algorithme bcrypt, qui est notoirement sensible à la longueur.
Solution :
Étendez la longueur de la colonne de hachage de votre mot de passe dans la base de données à au moins 255. personnages. Pour ce faire, modifiez le schéma de votre base de données en conséquence, comme indiqué ci-dessous :
ALTER TABLE users MODIFY COLUMN user_password_hash VARCHAR(255);
Cela permettra à password_verify de valider avec précision les mots de passe en les comparant aux hachages stockés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!