Фон
В то время как в спортзале я работал с моим кодовым замком и понял то, что было бы полезно для меня как программиста. Для этого моя комбинация состоит из трех отдельных наборов чисел, которые либо звучат одинаково, либо имеют какое-то другое отношение, которое облегчает их запоминание. Например, 5-15-25, 7-17-2, 6-24-5. Эти примеры легко запомнить.
Вопрос
Как мне реализовать что-то подобное для паролей? Да, они должны быть трудно взломать, но они также должны быть легко для конечного пользователя запомнить. Комбинированные замки делают это с сочетанием чисел, которые имеют похожие звуки, и с номерами, которые имеют сходные свойства (7-17-23: All Prime, 17 рулонов сразу после языка 7, а 23 - другое простое и (вне из этого набора), "жесткий", который нужно запомнить).
Критерии
- Пароль должен быть легко запоминающимся.
Dog!Wolf
легко запомнить, но как только злоумышленник знает, что ваш сайт выдает эту комбинацию, он делает его бесконечно легче проверить. - Слова или буквы должны в основном следовать тем же звукам (по большей части).
- Не менее 8 букв
- Не использовать
[email protected]#$%^&*();'{}_+<>?,./
Эти знаки препинания, в то время как подходят для "жестких" паролей, не имеют "легко запоминающегося" звука.
Ресурсы
Этот вопрос является агностиком языка, но если есть конкретная реализация для С#, я был бы рад услышать об этом.
Update
Несколько пользователей сказали, что "это плохая защита паролем". Не полагайте, что это для веб-сайта. Это может быть просто для меня сделать приложение для себя, которое генерирует пароли в соответствии с этими правилами. Вот пример.
Буквы А - С - С - L - I - M - O - P "поток", и они оказываются двумя регулярные слова, собранные (Акклиматировать и Mop). В дальнейшем, когда пользователь говорит эти письма, или говорит им как слово, это слово для них. Легко запомнить, но трудно взломать (словарная атака, очевидно).
Этот вопрос имеет две цели:
- Построить пароли из букв, похожих на звук (с использованием аллитерации) или
- Построить пароли, которые объединяют общие слова аналогично созданию третьего набора букв, который не находится в словаре.