Какова максимальная длина пароля, которую я могу использовать с 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 символов.