bcrypt およびランダムに生成されたソルト
bcrypt は、ソルティングを利用してセキュリティを強化するパスワード ハッシュ アルゴリズムです。ソルティングでは、ランダム データをパスワード ハッシュに組み込み、同じパスワードでも異なるハッシュ結果が生成されるようにします。
提供される PHP クラスには、生成する genSalt() という関数が含まれています。 openssl_random_pseudo_bytes() 関数を使用したランダム ソルト。このソルトは、genHash() 関数の bcrypt ハッシュ プロセスの一部として使用されます。
genHash() 関数はパスワードを取得し、それをランダムに生成されたソルトと組み合わせます。結果のハッシュは、元のパスワード、ソルト、および bcrypt アルゴリズムとそのパラメータ (ワークロード係数など) を示すアルゴリズム固有のプレフィックス ($2y$) を組み合わせたものです。
パスワードを検証するために、提供された verify() 関数は、入力されたパスワードと保存されているハッシュを比較します。これは、提供されたパスワードを保存されたハッシュと連結し、crypt() 関数を使用して再度ハッシュすることによって行われます。
ランダムにソルトが生成される理由を理解するための鍵保存されているハッシュの形式を調べることによるパスワード検証には影響しません。ハッシュは 2 つの主要な部分で構成されます:
verify() 関数が指定されたパスワードを保存されたハッシュでハッシュ化するとき、ソルト部分のみを使用します。その入力として。これにより、ソルトが検証プロセスに組み込まれることが保証されます。
要約すると、bcrypt はパスワードのセキュリティを確保するためにランダムなソルトを生成しますが、パスワード検証プロセスでは、パスワードのソルト部分のみが考慮されます。保存されたハッシュ。これにより、ソルトがランダムに生成された場合でも、提供されたパスワードを保存されたハッシュと照合して検証できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3