password_hash()
PHP 5.5およびで使用できるパスワードの最大長はpassword_verify()
?
4 に答える
では、これを見ていきましょう。
この機能には、パスワードの長さ制限があります。PHP のすべての文字列と同様に、2^31-1 バイトに制限されています。
明確にするために、PHP がそれよりも大きなものを処理する方法はありません (少なくとも現在は)。
そのため、機能自体が制限されます。しかし、基礎となる暗号アルゴリズムはどうでしょうか。
BCryptは、パスワードの最初の 72 文字の処理に制限されています。ただし、この回答で説明されているように、これは通常は問題になりません。
要するに、はい、有効な制限があります (デフォルトで唯一のアルゴリズムで最初の 72 文字のみを「使用」します)。いいえ、これは問題ではなく、「修正」または「軽減」しようとする必要もありません。それ。
password_hash
それ自体には長さの制限はありません。
フグ、しかし
ブロック サイズは 64 ビットで、鍵の長さは 32 ビットから 448 ビットまで可変です。これは 16 ラウンドの Feistel 暗号であり、鍵に依存する大きな S ボックスを使用します。構造的には、固定 S ボックスを使用する CAST-128 に似ています。(ウィキペディア)
これは、暗号として CRYPT_BLOWFISH を使用する場合 (デフォルト) に 56 文字の有効な制限を意味します。
password_hash 関数には長さの制限があってはなりません。