Ответ 1
Нет смысла указывать произвольное ограничение размера на имена пользователей. Но если вам нужно (например, для ширины столбца базы данных), вы должны сделать его достаточно большим, чтобы не жалеть об этом в будущем. (Когда я работаю, имена учетных записей - 8 символов, причем первые два символа одинаковы для всех сотрудников... duh!)
Это BAD IDEA, чтобы установить ограничение по размеру паролей.
Основная причина, по которой это плохая идея, заключается в том, что чем дольше будет пароль пользователей, тем больше энтропии она будет иметь, и, следовательно, сложнее будет угадать. Ограничивая длину пароля, вы потенциально можете заставить пользователя использовать плохой пароль. (Не то, что типичные пользователи нуждаются в большом количестве... к сожалению.)
Вторая причина заключается в том, что он предполагает, что вы храните пароли в таблице базы данных. Это было бы БОЛЬШОЙ ОШИБКОЙ, поскольку это потенциально может привести к сбою паролей пользователей, если ваша системная безопасность скомпрометирована. Вы должны хранить засоленный криптографический хэш пароля пользователя (который может иметь ограниченный размер) в базе данных и проверять тендерный пароль путем его хэширования и сравнения с сохраненным хешем.
Если вы говорите о минимальной длине (для паролей), вам, вероятно, следует сосредоточиться на энтропии, а не на длине пароля. (Пароль, состоящий из 20 "1", менее безопасен, чем случайная последовательность из 6 символов.)
Думаю, я пойду за этим ответом. Заселенный криптографический хэш открывает мой разум, я больше не должен беспокоиться о длине, плюс он более защищен. Спасибо!
(Должен быть солен... мой плохой.)
Я просто хочу исправить возможное непонимание того, что я сказал выше. Длинный пароль не обязательно является хорошим паролем (на пример). Но это не значит, что вы не должны "беспокоиться о длине". Слишком короткие пароли (даже случайные) слишком легко угадать.
Если ваша цель состоит в том, чтобы препятствовать/запрещать пользователям устанавливать пароли, которые легко угадать, тогда вы должны использовать какой-то механизм проверки качества пароля, чтобы отсеять "плохие" в то время, когда пользователь устанавливает/сбрасывает свой или ее пароль.
Поиск в Google для "энтропии паролей" или "параметров энтропии пароля" даст вам несколько результатов. И вот один из соседних:
(Примечание: крипто-хэш-подход - это НЕ ХРАНЕНИЕ пароля... не о длине пароля. Плохой пароль будет небезопасным, независимо от того, как ваше программное обеспечение обрабатывает его.)