PHP password_hash () максимальная длина пароля?

Какова максимальная длина пароля, которую я могу использовать с PHP 5.5 password_hash ()?

Хорошо, давайте пройдем через это.

Функция имеет ограничение длины пароля. Как и все строки в PHP, он ограничен 2 ^ 31-1 байтами.

Чтобы быть ясным, PHP не может иметь дело с чем-то большим, чем это (по крайней мере, сегодня).

Таким образом, сама функция ограничена. Но как насчет основных криптоалгоритмов.

BCrypt ограничивается обработкой первых 72 символов пароля. Однако это обычно не проблема, как объясняется в этом ответе .

Короче говоря, да, он имеет эффективный предел (он будет «использовать» первые 72 символа с помощью стандартного и единственного алгоритма), и это не проблема, и вы также не должны пытаться «исправлять» или «смягчать», Это.

Функция не имеет никакого предела, вам просто нужно сохранить свой memory_limit в виду, это должно быть все.

Изменить: вы должны ограничить длину пароля, иначе это может замедлить работу вашего сервера (в зависимости от алгоритма)
см. django: https://www.djangoproject.com/weblog/2013/sep/15/security/

Изменить 2: уточнить: не должно быть предела до 14-20 символов, оно должно быть 4 КБ или более.

Не должно быть ограничения длины для функции password_hash.

password_hash не имеет ограничения по длине.

Blowfish, однако

имеет размер 64-битного блока и длину ключа ключа от 32 бит до 448 бит. Это 16-раундовый шифр Фейстеля и использует большие ключевые S-боксы. В структуре он похож на CAST-128, который использует фиксированные S-боксы. ( Википедия )

Это означает, что при использовании CRYPT_BLOWFISH в качестве шифра (по умолчанию) используется эффективный предел в 56 символов.