Bcrypt とランダムに生成されたソルトについて
パスワードを安全にハッシュするための業界標準アルゴリズムである Bcrypt は、パスワード保護を強化するためにランダム ソルトを採用しています。 。ただし、ユーザーは、この一見ランダムな要素を考慮しながら検証プロセスがどのように機能するのか疑問に思うかもしれません。
ソルトの役割
ソルトは、パスワードに追加される前に一意のプレフィックスとして機能します。ハッシュ化。このランダム化された値により、各パスワードが同一であっても個別のハッシュが生成されます。予測できないソルトを使用することで、攻撃者はパスワード ハッシュを事前計算できなくなり、ユーザー アカウントを侵害することが大幅に困難になります。
ハッシュ化されたパスワードの構造
ソルトはランダムに生成されます、結果のハッシュ化されたパスワードに含まれます。ハッシュ化されたパスワードは、次のようないくつかの部分で構成されます。
検証プロセス
パスワードを検証する際、ハッシュ化されたパスワードが bcrypt アルゴリズムに提供されます。このアルゴリズムはソルト部分を抽出し、それを使用して指定されたパスワードをハッシュします。
このプロセスは本質的に、ハッシュされたパスワードを生成した最初のハッシュ操作を反映しています。新しく生成されたハッシュが保存されているハッシュと一致する場合、指定されたパスワードは正しいと検証されます。
例
パスワード「password」に対して生成されたハッシュ化されたパスワードを考えてみましょう。
y$abcdefg...123456789...
「パスワード」が正しいかどうかを確認するには、次のものが使用されます:
crypt("password", "y$abcdefg...123456789...")
この操作の結果は、次の場合に最初に生成されたハッシュと同一になります。 「パスワード」は正しいです。これは、ハッシュされたパスワードにソルトが含まれており、元のハッシュ操作を再作成できるためです。
以上がBcrypt はランダム ソルトを使用してハッシュ化されたパスワードをどのように検証しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。