重要なのは…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 。