7

password_hash()PHP 5.5およびで使用できるパスワードの最大長はpassword_verify()?

4

4 に答える 4

14

では、これを見ていきましょう。

この機能には、パスワードの長さ制限があります。PHP のすべての文字列と同様に、2^31-1 バイトに制限されています。

明確にするために、PHP がそれよりも大きなものを処理する方法はありません (少なくとも現在は)。

そのため、機能自体が制限されます。しかし、基礎となる暗号アルゴリズムはどうでしょうか。

BCrypt、パスワードの最初の 72 文字の処理に制限されています。ただし、この回答で説明されているように、これは通常は問題になりません。

要するに、はい、有効な制限があります (デフォルトで唯一のアルゴリズムで最初の 72 文字のみを「使用」します)。いいえ、これは問題ではなく、「修正」または「軽減」しようとする必要もありません。それ。

于 2013-09-17T20:13:24.010 に答える
2

password_hashそれ自体には長さの制限はありません。

フグ、しかし

ブロック サイズは 64 ビットで、鍵の長さは 32 ビットから 448 ビットまで可変です。これは 16 ラウンドの Feistel 暗号であり、鍵に依存する大きな S ボックスを使用します。構造的には、固定 S ボックスを使用する CAST-128 に似ています。(ウィキペディア)

これは、暗号として CRYPT_BLOWFISH を使用する場合 (デフォルト) に 56 文字の有効な制限を意味します。

于 2013-09-17T16:41:13.097 に答える
0

password_hash 関数には長さの制限があってはなりません。

于 2013-09-13T18:57:19.157 に答える