O
\n
na linha a seguir, está incorporando uma quebra de linha, (Edit:uma que não pode ser incluída na senha inserida pelo usuário) . $password = password_hash($pass, PASSWORD_BCRYPT, $options)."\n";
e você precisa excluí-lo e começar de novo com um novo hash.
Jay Blanchard , um membro aqui no Stack enviou uma nota sobre isso não muito longo também no
password_hash()
manual, que é algo sobre o qual ele e eu conversamos. Outra opção seria usar
trim()
; que também funciona (no momento do hash). $password = password_hash($pass, PASSWORD_BCRYPT, $options)."\n";
$password = trim($password);
// Store in db after
No entanto, você ainda precisa começar de novo limpando o(s) hash(es) antigo(s) e criando novos.
No entanto, tenha em mente que você não deve escapar de senhas.
Um como
123'\abc
(sendo perfeitamente válido) será modificado para 123\'\abc
por real_escape_string()
; não é necessário. password_verify()
cuida disso, em termos de segurança.