sql >> Databáze >  >> RDS >> Mysql

PHP password_verify nefunguje proti databázi

\n do následujícího řádku vkládá zalomení řádku, (Upravit:takový, který nelze zahrnout do hesla zadaného uživatelem) .

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

a musíte jej smazat a začít znovu s novým hashem.

Jay Blanchard , člen zde na Stacku odeslal poznámku o tom ne příliš dlouho také v password_hash() manuál, což je něco, o čem jsme s ním ve skutečnosti mluvili.

Další možností by bylo použít trim() ; to také funguje (v okamžiku hašování).

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

Přesto musíte začít znovu tím, že vymažete staré hash(y) a vytvoříte nové.

Mějte však na paměti, že byste neměli unikat heslům.

Například 123'\abc (je zcela platné) bude upraveno na 123\'\abc od real_escape_string() ; není to potřeba. password_verify() se o to z hlediska bezpečnosti postará.




  1. Nastavte databázi a vytvořte uživatele pouze pro čtení v AWS Redshift a Mysql

  2. Groovy SQL Oracle Array Funkce/procedura Registrace parametrů

  3. Nejsou n-tice vkládány postupně do databázové tabulky?

  4. Jak přečíslovat primární index