Введение
По-видимому, этот вопрос был задан здесь, и он, к сожалению, закрыт. Я подумал, что это хорошая идея, попробовать еще раз, но все сделано правильно.
XKCD смотрит на то, как нас обучают использовать «трудно запоминающиеся пароли», думая, что это безопасно, но вместо этого компьютеру потребуется 3 дня, чтобы взломать. С другой стороны, запоминание 4-5 слов приводит к появлению Kuan's Password Intropy, и его легко запомнить. Сумасшедший, как это работает, а?
Вызов
Работа сегодня состоит в том, чтобы создать 5 паролей, используя слова. 4 слова на пароль и минимум 4 буквы на слово, но не максимум. Интропия пароля Куана должна быть рассчитана для каждого пароля, но принудительный минимум не будет установлен.
Что такое парольная интропия Куана?
По словам Куана, интропия пароля Куана является мерой того, насколько непредсказуемым является пароль. Есть простой расчет: E = log 2 (R) * L . E - Интропия пароля Куана, R - диапазон доступных символов и L - длина пароля.
Диапазон доступных символов не требует пояснений. Это диапазон символов, который может иметь пароль, в данном случае это верхний и нижний регистр. Поскольку в алфавите 26 символов, 26 x 2 = 52 символа во всем диапазоне пароля.
Длина пароля также не требует пояснений. Это общая длина пароля после создания.
Ограничения
- Нет ввода.
- Слово не может появиться в том же пароле.
- Никакие символы или цифры не допускаются в пароле.
- 4 слова на пароль, но не менее 4 букв на слово.
- Между словами нет пробелов.
- Вы не можете генерировать один и тот же пароль снова и снова.
- Каждое слово должно быть написано заглавными буквами в пароле.
- Вывод должен быть удобочитаемым, должен быть разнесен. Необходимо также включить в него парольную интропию пароля Куана, используя приведенное выше уравнение парольной паролей Куана.
- Словарь . Вы должны использовать это, скачать его как текстовый файл и интегрировать соответственно. Это будет список, из которого вы берете слова. Ваш код должен предполагать его доступность.
- Это код-гольф , выигрывают короткие байты.
Выход
TriedScarProgressPopulation 153.9
TryingPastOnesPutting 119.7
YearnGasesDeerGiven 108.3
DoubtFeetSomebodyCreature 142.5
LiquidSureDreamCatch 114.0
Nсимволы из набора S, энтропия пароля - log2(|S|)*N. Здесь размер набора символов - это размер словаря ( |S|=4284), а количество символов - это количество слов ( N=4), поэтому энтропия для каждого пароля равна 48.3.
3t1ta#asd), тогда энтропия будет логарифмом числа возможных паролей. Если вы всегда выбираете 4 слова случайным образом из словаря на 4284 слова, то есть 4284 ^ 4 паролей, каждый с энтропийным журналом₂ (4284) * 4 ≈ 48,26.