ホームページ >データベース >mysql チュートリアル >PHP 5.5 の「password_hash()」と「password_verify()」はどのようにしてパスワード ストレージを保護できるのでしょうか?

PHP 5.5 の「password_hash()」と「password_verify()」はどのようにしてパスワード ストレージを保護できるのでしょうか?

DDD
DDDオリジナル
2024-12-22 21:49:18425ブラウズ

How Can PHP 5.5's `password_hash()` and `password_verify()` Secure Password Storage?

PHP 5.5 のpassword_hash 関数とpassword_verify 関数を使用してパスワード ストレージを保護する

パスワードを安全に保存することは、ユーザー データの整合性を維持するために重要です。 PHP 5.5 では、これを安全かつ効率的に行う方法を提供するために、password_hash() 関数とpassword_verify() 関数が導入されました。

password_hash() と Salt

古いパスワード ストレージとは異なります。メソッドでは、password_hash() はパスワードごとに一意のソルトを使用します。ソルトは、攻撃者が一般的なパスワード ハッシュを試みるレインボー テーブル攻撃を防ぐランダムな文字列です。

パスワードとソルトの保存

PHP 5.5 でパスワードを保存するにはpassword_hash() を実行するには、次の手順に従います。

  1. 次を使用してソルトを生成します。 uniqid() または同様の関数。
  2. パスワード、PASSWORD_BCRYPT、およびソルトとコスト (推奨: 10 ~ 12) を含むオプション配列を使用して、password_hash() を呼び出します。
  3. password_hash () 関数は、ハッシュとSalt.

例:

$options = ["cost" => 10, "salt" => uniqid()];
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT, $options);

パスワードの確認

パスワードを確認するには、保存されているパスワードを取得しますデータベースから hashAndSalt を取得し、提供されたパスワードと保存されているパスワードを使用して、password_verify() を呼び出します。 hashAndSalt.

例:

if (password_verify($password, $hashAndSalt)) {
    // Password verified successfully
}

追加のセキュリティ対策

一方、password_hash() は安全な保存方法を提供します。パスワード、推奨to:

  • 10 以上のコスト パラメーターを使用します。
  • データベース処理には mysql の代わりに mysqli を使用します。
  • SQL インジェクション保護技術を実装します。

以上がPHP 5.5 の「password_hash()」と「password_verify()」はどのようにしてパスワード ストレージを保護できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。