ホームページ >バックエンド開発 >PHPチュートリアル >PHPのpassword_hash()関数とpassword_verify()関数はどのようにしてパスワードを安全に保存し検証できるのでしょうか?
PHP のパスワード管理機能を使用してパスワードを安全に保存および検証する
Web アプリケーションでパスワードを処理する場合、セキュリティが最も重要です。 PHP 5.5 では、この重要なタスクを支援するために、password_hash() 関数とpassword_verify() 関数が導入されました。
安全なハッシュの作成
password_hash() 関数は、安全なハッシュを生成します。 BCRYPT などのアルゴリズムを使用して、指定されたパスワードを取得します。ハッシュを作成するには、パスワード自体、ハッシュ アルゴリズム (PASSWORD_BCRYPT など)、およびオプションの配列という 3 つのパラメータが必要です。オプションには、コスト (計算係数) と一意のソルト (一意性を高めるためにハッシュに追加されるランダムに生成されたデータ) の指定が含まれます。
パスワードとソルトの保存
最初のクエリとは異なり、正しいアプローチは、ハッシュとソルトの両方をデータベースに保存することです。これは、password_hash() が両方の要素を含む文字列を返すためです。たとえば、MySQL ステートメントでは次のようになります。
INSERT INTO users(username, password_hash) VALUES($username, $hashAndSalt);
パスワード検証
ユーザーがログインするとき、入力したパスワードは保存されているハッシュと照合して検証される必要があります。これを行うには、保存されているハッシュ (ハッシュとソルトの両方を含む) を取得し、password_verify():
if (password_verify($password, $hashAndSalt)) { // Verified }
追加のセキュリティ対策
Beyond に渡します。これらの関数を使用する場合は、他のセキュリティ対策を検討してください:
以上がPHPのpassword_hash()関数とpassword_verify()関数はどのようにしてパスワードを安全に保存し検証できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。