Системный администратор Василий забыл пароль от корпоративного сервера. В документации системы безопасности указаны параметры парольной политики:
длина пароля составляет 8 символов;
разрешены буквы английского алфавита (26 символов, регистр только верхний), цифры, спецсимволы;
цифры только нечётные и ноль;
спецсимволы — только восклицательный знак (!), знак доллара ($), знак процента (%), амперсанд (&), минус (-).
Сколько времени максимально уйдёт на подбор пароля у специализированной программы, работающей со скоростью 1000000 паролей в секунду? Ответ выразите в днях, округлите до целых.
1 Ответ
Решение:
Шаг 1. Определяем возможные символы для каждого из 8 мест в пароле:
Буквы: 26 (только верхний регистр).
Цифры: нечётные (1, 3, 5, 7, 9) — 5 цифр, плюс ноль (0) — итого 6 цифр.
Спецсимволы: ! $ % & — — всего 5 символов.
Всего допустимых символов: 26 + 6 + 5 = 37 символов.
Шаг 2. Общее количество возможных паролей:
Длина 8, каждый символ можно выбрать из 37 вариантов (предполагаем, что нет ограничений на использование хотя бы одной буквы/цифры/спецсимвола, так как в условии такого не сказано).
Количество комбинаций: 37^8.
Посчитаем:
37^2 = 1369
37^4 = 1369^2 = 1 874 161
37^8 = (37^4)^2 = 1 874 161^2 ≈ 3 512 479 000 000 (более точно: 3 512 479 000 000? Давайте 1 874 161 * 1 874 161. Для точности:
1 874 161 * 1 874 000 = 3 511 000 000 000 примерно, плюс 1 874 161 * 161 = 301 000 000, итого ~3 512 301 000 000. Уточним: 1 874 161 * 1 874 161 = 3 511 479 000 000? Лучше вычислим: 1 874 000^2 = 3 511 876 000 000, а точный расчет: 1 874 161^2 = (1 874 000 + 161)^2 = 1 874 000^2 + 21 874 000161 + 161^2 = 3 511 876 000 000 + 603 428 000 + 25 921 = 3 512 479 453 921. Итак, 37^8 = 3 512 479 453 921.
Шаг 3. Время подбора:
Скорость программы — 1 000 000 паролей в секунду. Значит, в худшем случае (перебор всех комбинаций) понадобится:
3 512 479 453 921 / 1 000 000 = 3 512 479,453921 секунд.
Переведём в дни:
В сутках 86400 секунд (606024).
3 512 479,453921 / 86400 ≈ 40,654… дня.
Округляем до целых: 41 день.
Ответ: 41 день.
