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

Která metoda je lepší pro ověření přihlašovacích údajů uživatele?

Jde o to... Předpokládá se, že skladujete solené, hashované hesla v databázi. Protože jsou individuálně solené na uživatele/heslo, nemůžete vyhledejte je přímo pomocí password = ? , protože neznáte sůl, a proto nemůžete vypočítat odpovídající hash předem. Pokud to děláte správně, musíte nejprve načtěte záznam uživatele podle uživatelského jména a poté ověřte hash hesla pomocí načtené soli/hash. Pseudokód:

$user = fetch_from_database($_POST['username']);

if (!$user) {
    throw new Exception("User doesn't exist");
}

if (!password_verify($_POST['password'], $user['password_hash'])) {
    throw new Exception('Invalid password');
}

echo 'Welcome ', $user['name'];

Viz http://php.net/password_hash , http://php.net/password_verify .



  1. cx_Oracle se nepřipojí při použití SID místo názvu služby v připojovacím řetězci

  2. Profilování dat:Zjišťování podrobností o datech

  3. SQL Server 2016

  4. PostgreSQL 11:Recenzenti záplat pro rozdělování záplat