Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP password_verify funktioniert nicht mit der Datenbank

Der \n in der folgenden Zeile wird ein Zeilenumbruch eingebettet, (Bearbeiten:einer, der nicht in das vom Benutzer eingegebene Passwort aufgenommen werden kann) .

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

und Sie müssen es löschen und mit einem neuen Hash von vorne beginnen.

Jay Blanchard , ein Mitglied hier auf Stack sendete eine Notiz darüber nicht allzu lange auch im password_hash() Handbuch, worüber er und ich tatsächlich gesprochen haben.

Eine andere Möglichkeit wäre die Verwendung von trim() ; das funktioniert auch (im Moment des Hashings).

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

Dennoch müssen Sie noch einmal von vorne beginnen, indem Sie die alten Hashes löschen und neue erstellen.

Denken Sie jedoch daran, Passwörter nicht zu maskieren.

Eine wie 123'\abc (wobei es vollkommen gültig ist) wird in 123\'\abc geändert von real_escape_string() ; es wird nicht benötigt. password_verify() kümmert sich sicherheitstechnisch darum.