Mysql
 sql >> Database >  >> RDS >> Mysql

PHP password_verify non funziona con il database

Il \n nella riga seguente, sta incorporando un'interruzione di riga, (Modifica:una che non può essere inclusa nella password immessa dall'utente) .

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

e devi eliminarlo e ricominciare da capo con un nuovo hash.

Jay Blanchard , un membro qui su Stack ha inviato una nota a riguardo non troppo a lungo anche nel password_hash() manuale, che è qualcosa di cui io e lui abbiamo effettivamente parlato.

Un'altra opzione sarebbe usare trim() ; funziona anche (al momento dell'hashing).

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

Tuttavia, devi ancora ricominciare da capo cancellando i vecchi hash e creandone di nuovi.

Tieni presente, però, che non dovresti sfuggire alle password.

Uno come 123'\abc (essendo perfettamente valido) sarà modificato in 123\'\abc di real_escape_string() ; non è necessario. password_verify() se ne occupa, dal punto di vista della sicurezza.