При создании механизма "забытого пароля" мы можем захотеть создать временный пароль для пользователя, который хранится с использованием SHA1 (не стесняйтесь предлагать другой механизм криптографии C#).
Как долго мы должны сделать временный пароль? Слишком коротко, это может быть грубая сила. Слишком длинная и ненужная длина является избыточной, поскольку строка все равно хэшируется? (Поскольку строка из 20 и 50 символов в любом случае приводит к хешу одинаковой длины)
Обновление Извините, если ввел в заблуждение. Конечно, мы можем выбрать число из воздуха, но мне интересно, есть ли веская математическая причина выбрать 13, а не 12.
Я думаю, что это хороший совет относительно временных паролей:
Полное руководство по аутентификации веб-сайтов на основе форм
В нем говорится о том, чтобы избежать их создания в пользу получения реальных действий, которые хочет пользователь.
Ответ 2 · рейтинг 1 · Macha
Обычно я использую 10 символов. Для этого нет особой причины, просто я думаю, что длина пароля, выбранного пользователем, превышает среднюю.
Просто из-за того, что он генерируется случайным образом, он, вероятно, будет более безопасным и более сложным для грубой силы, чем что-либо, выбранное вашими пользователями. Люди выбирают глупые пароли, такие как myspace1, stackoverflow1, 12341234 и т. д.
Ответ 3 · sharptooth
Если пароль состоит из буквенно-цифровых символов, у вас есть только около 6 бит полезных данных на символ, и поэтому вы ошибаетесь, говоря, что нет смысла делать пароль длиннее 20 символов.
Ответ 4 · Marc Gravell
Похоже, вы беспокоитесь о том, чтобы сделать временный пароль более надежным, чем пароль пользователя ... когда на самом деле что-то вроде 10-символьного base-64 (или аналогичного - знаки препинания и т. д.) будет очень трудно взломать и намного сильнее чем пароль, который сгенерирует пользователь....
Ответ 5 · TofuBeer
Сделайте его также переменного размера (скажем, 8-12 символов), что затруднит грубую силу ... если злоумышленник знает, что вы возвращаете пароль с символом X, все, что им нужно сделать, это попробовать все пароли с N ... предполагая N велико, это будет непрактично, но изменение размера N, по крайней мере, усложнит им задачу.
Он также объясняет причины этого. Приятно читать. Надеюсь это поможет.
Ответ 7 · snemarch
Используйте любую длину, указанную на вашем сайте, как рекомендованную для пользователей. При создании случайной строки символов base64 я бы спокойно спал ночью с паролем из 8 символов. Но, конечно, я бы ограничил попытки входа в систему до одного раза в X секунд и временно отключил учетную запись после Y неудачных попыток.
И не забудьте добавить уникальную соль для каждого пользователя перед хешированием, чтобы предотвратить атаки на основе базы данных.