sql >> Base de Datos >  >> RDS >> Mysql

PHP password_verify no funciona contra la base de datos

El \n en la siguiente línea, está incrustado un salto de línea, (Editar:uno que no se puede incluir en la contraseña ingresada por el usuario) .

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

y debe eliminarlo y comenzar de nuevo con un nuevo hash.

Jay Blanchard , un miembro aquí en Stack envió una nota sobre esto no demasiado tiempo también en el password_hash() manual, que es algo de lo que él y yo hablamos.

Otra opción sería usar trim() ; eso también funciona (en el momento del hashing).

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

Sin embargo, aún debe comenzar de nuevo borrando los hash antiguos y creando otros nuevos.

Sin embargo, tenga en cuenta que no debe escapar de las contraseñas.

Uno como 123'\abc (siendo perfectamente válido) se modificará a 123\'\abc por real_escape_string() ; no es necesario password_verify() se encarga de eso, en cuanto a seguridad.