sql >> Databasteknik >  >> RDS >> Mysql

Vilken metod är bättre för att validera användaruppgifter?

Saken är... Du ska lagra saltad, hashad lösenord i databasen. Eftersom dessa är individuellt salta per användare/lösenord kan du inte slå upp dem direkt med password = ? , eftersom du inte känner till saltet och därför inte kan beräkna matchande hash i förväg. Om du gör det här på rätt sätt måste du hämta användarposten efter användarnamn först, validera sedan lösenords-hash med hjälp av den hämtade salt/hash. Pseudokod:

$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'];

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



  1. Vad är skillnaden mellan MySQL BOOL och BOOLEAN kolumndatatyper?

  2. mysql långsam fråga

  3. Konvertera valda kolumnvärden till en annan rad med select med samma id part2

  4. XMLAGG med RTRIM-problem