Mysql
 sql >> база данни >  >> RDS >> Mysql

Кой метод е по-добър за валидиране на потребителските идентификационни данни?

Работата е там... Вие трябва да съхранявате осолено, хеширано пароли в базата данни. Тъй като те са индивидуално осолени на потребител/парола, не можете потърсете ги директно с password = ? , защото не знаете солта и следователно не можете да изчислите предварително съответстващия хеш. Ако правите това правилно, виетрябва първо извлечете потребителския запис по потребителско име, след това потвърдете хеша на паролата, като използвате извлечената сол/хеш. Псевдокод:

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

Вижте http://php.net/password_hash , http://php.net/password_verify .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Може ли MySQL да бъде заменен безпроблемно с MariaDB или има ли неща за промяна в този случай?

  2. SQL заявка за показване на най-близката дата?

  3. Не може да се разреши името на таблицата близо до

  4. mysqli_num_rows не работи правилно

  5. mysql тип данни за съхраняване само на месец и година