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

Hašování hesla pomocí šifrování nefunguje při přihlášení, zobrazuje nesprávné heslo

Registrací vytvoříte unikátní sůl. Tato sůl je nyní součástí hashe. Když se podíváte pozorně, uvidíte, že je vnořený do první části hashe. Chcete-li heslo zkontrolovat, použijte sůl předchozího hashovaného hesla, takže znovu používáte stejnou sůl.

$correctPasswordHash = getPasswordFromDatabase($_POST['username']);
$hash = crypt($_POST['password'], $correctPasswordHash);

if ($correctPasswordHash === $hash) ...

Aby to bylo jednodušší a spolehlivější, použijte knihovnu password_compat , který to zabalí do snadno použitelného API, které bude také integrováno do budoucí verze PHP. Zkontrolujte jeho zdrojový kód pro správné použití crypt , protože existují určitá úskalí, o která se musíte postarat. Knihovna password_compat také používá vlastní binární srovnání namísto jednoduchého === k maření načasovaných útoků.



  1. Spring Boot Application se zasekne na Hikari-Pool-1 - Spouštění...

  2. Můžete pomoci upravit dotaz nebo jiný dotaz pro získání očekávaného výsledku

  3. Datový model 3D šachy Star Trek

  4. Jak zacházet s jednou citací v Oracle SQL