Mysql
 sql >> Base de données >  >> RDS >> Mysql

PHP password_verify ne fonctionne pas avec la base de données

Le \n dans la ligne suivante, intègre un saut de ligne, (Modifier :un qui ne peut pas être inclus dans le mot de passe saisi par l'utilisateur) .

$password = password_hash($pass,  PASSWORD_BCRYPT, $options)."\n";

et vous devez le supprimer et recommencer avec un nouveau hachage.

Jay Blanchard , un membre ici sur Stack a soumis une note à ce sujet pas trop longtemps aussi dans le password_hash() manuel, ce dont lui et moi avons parlé.

Une autre option serait d'utiliser trim() ; qui fonctionne aussi (au moment du hachage).

$password = password_hash($pass,  PASSWORD_BCRYPT, $options)."\n";
$password = trim($password);
// Store in db after

Pourtant, vous devez toujours recommencer en effaçant les anciens hachages et en en créant de nouveaux.

Gardez cependant à l'esprit que vous ne devez pas échapper aux mots de passe.

Un tel que 123'\abc (étant parfaitement valide) sera modifié en 123\'\abc par real_escape_string() ; ce n'est pas nécessaire. password_verify() s'en occupe, du point de vue de la sécurité.