Преобразуйте leet-говорят с простым текстом

Я не то, что бедро на языке L33t вне того, что я считал на Википедию.

Я действительно должен добавить, что словарь проверяет к нашему инструменту проверки надежности пароля, и так как leet-говорят, только добавляет тривиальные издержки к процессу взламывания пароля, я хотел бы к de-leet-ify вход прежде, чем проверить его по словарю.

Разъяснить обоснование позади этого: При необходимости для добавления символов к их паролям многие пользователи просто сделают некоторую очень предсказуемую leet замену относительно общего слова для встречи числа и требования включения символа. Поскольку это настолько предсказуемо, это добавляет очень мало фактической сложности к паролю просто использование исходного слова словаря. \Edit

Не зная всех правил, особенно мультисимвольные замены как "//" для "W", и будучи бесспорным это - проблема, которая много раз решалась включая, конечно, проектами с открытым исходным кодом.

Я ищу примеры кода, но не нашел никого до сих пор. Если бы это - код C#, который был бы премией!, но код в любом общем языке поможет.

Кроме того, было бы хорошо иметь расширяемый подход, поскольку я понимаю, что этот диалект развивается быстро. Было бы хорошо смочь к дополнению некоторые правила через год, когда они развиваются.

И не, это не основание для моей всей проверки надежности пароля. Это - только первая часть, обращаюсь за помощью на в этом сообщении. Таким образом, мы не отвлечены другими элементами пароля и проблем безопасности, позвольте мне описать проблемы пароля, которые не имеют отношение, leet-говорите:

Мы измеряем биты энтропии в пароле на NIST специальная публикация 800-63 и требуем настраиваемой политикой эквивалентной меры (56 битов, например), чтобы пароль был действителен. Это все еще оставляет место для слов словаря, которые были просто leet-редактором, и с энтропийной точки зрения не намного лучшие простые слова словаря.

Я просто хотел бы сказать пользователям, что "P@s5w0rd" слишком близок слово словаря, и они могли, вероятно, найти более сильный пароль.

Я знаю, что существует намного больше к соображениям безопасности как баланс между паролями, что люди могут помнить, и пароли, которые безопасны. Это не тот вопрос.

Все, о чем я спрашиваю, преобразовывает l33t в простой текст, который должен быть почти как забава и интересен из темы как гольф кода. Кто-либо видел какие-либо примеры кода?

10
задан Sam 19 August 2014 в 07:29
поделиться

3 ответа

Также предлагается код:

String password  = @"\/\/4573Fu|_";
Dictionary<string, string> leetRules = new Dictionary<string, string>();

leetRules.Add("4", "A");
leetRules.Add(@"/\", "A");
leetRules.Add("@", "A");
leetRules.Add("^", "A");

leetRules.Add("13", "B");
leetRules.Add("/3", "B");
leetRules.Add("|3", "B");
leetRules.Add("8", "B");

leetRules.Add("><", "X");

leetRules.Add("<", "C");
leetRules.Add("(", "C");

leetRules.Add("|)", "D");
leetRules.Add("|>", "D");

leetRules.Add("3", "E");

leetRules.Add("6", "G");

leetRules.Add("/-/", "H");
leetRules.Add("[-]", "H");
leetRules.Add("]-[", "H");

leetRules.Add("!", "I");

leetRules.Add("|_", "L");

leetRules.Add("_/", "J");
leetRules.Add("_|", "J");

leetRules.Add("1", "L");

leetRules.Add("0", "O");

leetRules.Add("5", "S");

leetRules.Add("7", "T");

leetRules.Add(@"\/\/", "W");
leetRules.Add(@"\/", "V");

leetRules.Add("2", "Z");

foreach (KeyValuePair<string,string> x in leetRules)
{
    password = password.Replace(x.Key, x.Value);
}

MessageBox.Show(password.ToUpper());
10
ответ дан 3 December 2019 в 14:52
поделиться

Я должен сказать, что считаю это плохой идеей ... Если вы хотите, чтобы они были сильными, придумайте более строгие требования .. Должен состоять не менее чем из 8 символов, содержать прописные и строчные буквы, содержать хотя бы одно число, и хотя бы один специальный символ. Перед отключением учетной записи установите счетчик максимального количества сбоев авторизации. Когда это будет сделано, о чем вы беспокоитесь?

13
ответ дан 3 December 2019 в 14:52
поделиться

Почему бы вам просто не реализовать функцию, которая просто создает «произносимые» пароли и требует от пользователей их использования? Похоже, работы намного меньше, а безопасность лучше.

2
ответ дан 3 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: