MD5を使用したり、パスワードを復号化しようとしたりするのではなく(ここで他の人が示唆しているように)、PHPのネイティブの password_hash() パスワードが正しいかどうかを自動的にチェックする機能。
次のようにパスワードを暗号化します:
$unencrypted_password = 'secret!';
$encrypted_password = password_hash($unencrypted_password, PASSWORD_DEFAULT);
次に、次のようにDBに挿入します:
INSERT INTO users (encrypted_password, username) VALUES ($encrypted_password, $username);
パスワードが正しいかどうかを確認する場合は、データベースから次のコマンドを使用してパスワードを選択します。
SELECT encrypted_password FROM users WHERE username = $username;
最後に、 passoword_verify() を使用して、パスワードが正しいことを確認します。 :
$correct = password_verify($unecnrypted_password, $encrypted_password);
if($correct == true) {
echo 'correct password!';
} else {
echo 'password incorrect!';
}
上記のコードはSQLインジェクションに対して脆弱であるため、SQLインジェクションから保護するように注意してください。