ホームページ > バックエンド開発 > PHPチュートリアル > ランダムに生成されたソルトは bcrypt によるパスワード検証に影響しますか?

ランダムに生成されたソルトは bcrypt によるパスワード検証に影響しますか?

DDD
リリース: 2024-10-20 17:12:02
オリジナル
673 人が閲覧しました

Does Randomly Generated Salt Affect Password Verification with bcrypt?

bcrypt とランダムに生成されたソルト

背景

bcrypt は、セキュリティを強化するためにソルティングを利用するパスワード ハッシュ アルゴリズムです。ソルティングでは、ランダム データをパスワード ハッシュに組み込み、同じパスワードでも異なるハッシュ結果が生成されるようにします。

ソルトの生成とハッシュ

提供される PHP クラスには、genSalt() と呼ばれる関数が含まれています。 openssl_random_pseudo_bytes() 関数を使用したランダム ソルト。このソルトは、genHash() 関数の bcrypt ハッシュ プロセスの一部として使用されます。

genHash() 関数はパスワードを受け取り、それをランダムに生成されたソルトと組み合わせます。結果のハッシュは、元のパスワード、ソルト、および bcrypt アルゴリズムとそのパラメータ (ワークロード係数など) を示すアルゴリズム固有のプレフィックス ($2y$) を組み合わせたものです。

パスワード検証

パスワードを検証するために、提供された verify() 関数は、入力されたパスワードと保存されているハッシュを比較します。これは、提供されたパスワードを保存されたハッシュと連結し、crypt() 関数を使用して再度ハッシュすることによって行われます。

ハッシュ比較ロジックを理解する

ランダムにソルトが生成される理由を理解するための鍵保存されているハッシュの形式を調べることによるパスワード検証には影響しません。ハッシュは 2 つの主要な部分で構成されます:

  1. アルゴリズム プレフィックス ($2y$)、ワークロード係数 (例: 10)、およびソルト (例: abcdefg...)
  2. ハッシュ化されたパスワード

verify() 関数が指定されたパスワードを保存されたハッシュでハッシュ化するとき、ソルト部分のみを入力として使用します。これにより、ソルトが検証プロセスに組み込まれることが保証されます。

結論

要約すると、bcrypt はパスワードのセキュリティを確保するためにランダムなソルトを生成しますが、パスワード検証プロセスでは、パスワードのソルト部分のみが考慮されます。保存されたハッシュ。これにより、ソルトがランダムに生成された場合でも、提供されたパスワードを保存されたハッシュと照合して検証できます。

以上がランダムに生成されたソルトは bcrypt によるパスワード検証に影響しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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