一般的な方法は次のとおりです。
password
を取得するusername
が存在するデータベースからのハッシュ =入力されたユーザー名。- 行が見つかった場合は、ユーザーがいます
- ここで、入力したパスワードをデータベースに保存されているハッシュと比較します。
ここでは、上記のフローの概要をいくつかの擬似コードで説明します:
$query = SELECT password FROM users WHERE username = '$username'
$data = FETCH_THE_DATA($query);
if(password_verify($USER_INPUTTED_PASSWORD, $data['password'])) {
// password is correct
} else {
// password is in-correct
}
メモ
-
mysql_*
の使用を停止します 機能。ライブラリは信頼性が低いため非推奨であり、PHPの将来のリリースで削除される予定です。- PDO
を使用することをお勧めします または
MySQLiプリペアドステートメント
- PDO
を使用することをお勧めします または
- 常にマニュアルを読む必要があります-
password_verify()
、「ユーザーが入力したパスワード」をデータベースに保存されているハッシュバージョンと比較することを明確に示しています。