監査人に説明できるように、password_hash を完全に理解しようとしています。
私の答えの検索に基づいて、password_hash()
関数が のラッパーであることを理解していますcrypt()
。事前定義された定数の PHP マニュアルを読んでいると、デフォルトの整数値として使用されていることがわかりPASSWORD_BCRYPT
ます (基本的には、CRYPT_BLOWFISH
アルゴリズムを使用してパスワードをハッシュします)。
私を混乱させているのは、$options
省略した場合、変数がランダムなソルトを生成し、コストが に設定されること10
です。より高いコストを指定した場合 (例: 12
)、ソルト値を指定していないため、ランダムなソルトが生成されますか? ここで混乱しているのは、 を省略しているのでは$options
なく、別のコストを提供しているためです。
私の他の質問:
- コスト値を上げるとセキュリティが向上するのはなぜですか?
password_hash()
一方向のハッシュ関数でpassword_verify()
あるため、ソルトがランダムであるため、パスワードを検証するにはどうすればよいですか?- ハッシュ
CRYPT_SHA512
よりも強いですか?CRYPT_BLOWFISH