De \n
in de volgende regel, is een regeleinde ingesloten, (Bewerken:een die niet kan worden opgenomen in het door de gebruiker ingevoerde wachtwoord) .
$password = password_hash($pass, PASSWORD_BCRYPT, $options)."\n";
en je moet het verwijderen en opnieuw beginnen met een nieuwe hash.
Jay Blanchard
, een lid hier op Stack heeft een notitie ingediend
hierover niet te lang ook in de password_hash()
handleiding, iets waar hij en ik het eigenlijk over hadden.
Een andere optie zou zijn om trim()
te gebruiken
; dat werkt ook (op het moment van hashen).
$password = password_hash($pass, PASSWORD_BCRYPT, $options)."\n";
$password = trim($password);
// Store in db after
Toch moet je nog steeds opnieuw beginnen door de oude hash(s) te wissen en nieuwe te maken.
Houd er echter rekening mee dat u niet moet ontsnappen aan wachtwoorden.
Een zoals 123'\abc
(zijnde volkomen geldig) wordt gewijzigd in 123\'\abc
door real_escape_string()
; het is niet nodig. password_verify()
zorgt daar voor, qua beveiliging.