「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > ランダムに生成されたソルトは bcrypt によるパスワード検証に影響しますか?

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

2024 年 11 月 10 日に公開
ブラウズ:781

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

リリースステートメント この記事は次の場所に転載されています: 1729415415 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3