Работата е там... Вие трябва да съхранявате осолено, хеширано пароли
в базата данни. Тъй като те са индивидуално осолени на потребител/парола, не можете потърсете ги директно с 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 .