ホームページ > バックエンド開発 > PHPチュートリアル > PHP の「password_hash」はどのようにしてパスワードを安全にハッシュ化し検証するのでしょうか?

PHP の「password_hash」はどのようにしてパスワードを安全にハッシュ化し検証するのでしょうか?

DDD
リリース: 2024-12-29 18:48:14
オリジナル
681 人が閲覧しました

How Does PHP's `password_hash` Securely Hash and Verify Passwords?

PHP のpassword_hash を使用したパスワードのハッシュと検証

ログイン スクリプトのセキュリティ対策を実装する場合、パスワードのハッシュの仕組みを理解することが不可欠です。 PHP 組み込み関数であるpassword_hash は、こ​​のプロセスを簡素化します。

password_hash への塩の組み込み

あなたの仮定は正しいです。 password_hash は自動的にソルトを生成し、それをハッシュ化されたパスワードに組み込みます。このソルトはランダム性を追加するため、攻撃者がハッシュ値にアクセスできる場合でも、パスワードを総当たり攻撃することが困難になります。

ソルトの保存

一般的に推奨されません次の理由により、ソルトを外部 (ファイルまたは別のデータベース テーブルなど) に保存します。理由:

  • セキュリティ リスク: ソルトが侵害されると、攻撃者はソルトを使用してハッシュ プロセスを逆行させ、保存されているパスワードを公開する可能性があります。
  • 複雑さ: 複数の塩源を管理すると、不必要な複雑さとメンテナンスが必要になります
  • 不要: パスワードのセキュリティには、password_hash によって生成されたソルトで十分です。

使用ガイド

活用するにはpassword_hash:

  1. プレーンテキストのパスワードをハッシュします:

    $hashed_password = password_hash($password, PASSWORD_DEFAULT);
    ログイン後にコピー
  2. ハッシュされたパスワードをデータベースに安全に保存し、ハッシュ値の長さに対応できるようにします (通常は60文字)。
  3. ユーザーの認証を行う場合ログインを試行し、password_verify を使用して入力されたパスワードを保存されているハッシュと比較します。

    if (password_verify($password, $hashed_password)) {
     // Password matches the hash, log in the user.
    }
    ログイン後にコピー

詳細と公式ドキュメントについては、公式 PHP マニュアル ページを参照してください: [password_hash](https: //www.php.net/manual/en/function.password-hash.php).

以上がPHP の「password_hash」はどのようにしてパスワードを安全にハッシュ化し検証するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート