как можно ускорить генерацию рандомных паролей
написал код для тестирования безопасности пароля, но он уже ищет час мой пароль из 12 символов, при том что я задал искать от 12 до 12 символов, как можно ускорить перебор, вот код:
def per():
col1 = input("введите минимальное количество символов: ")
col2 = input("введите максимальное количество символов: ")
a = input ("введите пароль ")
is_first = True
while is_first or rand != a:
is_first = False
cs = random.randint(int(col1),int(col2))
symbols = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_'
rand = (''.join(choice(symbols) for i in range(cs)))
print(rand)
gg = input("теперь ты знаешь насколько надежен твой пароль")
per()
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
Selasi просто у вас в математикой немного туго :)
ваш код генерирует пароли пока не получит указанный пользователем пароль (зачем?)
давайте считать -
- словарь насчитывает 62 символа
- пароль содержит 12 символов
- всего возможно 62^12 = 3.226.266.762.397.899.821.056 вариантов
- пароли генерируются случайно, значит в среднем чтобы найти ваш пароль вам понадобится перебрать 1.613.133.381.198.949.910.528 вариантов
- пусть 1 пароль генерируется за 1 тик (а не в 1000+ раз медленнее как это и происходит на питоне), значит на компе со 100 ядрами и частотой 1ТГц вам понадобится полгода
а теперь скажите через сколько лет появятся такие компьютеры? :))))
и еще - поскольку процесс случайный - то с вероятностью 0.00000000000000000003% вы получите пароль сразу
Теперь касательно вашего вопроса - ничего вы не ускорите пока не поставите правильно задачу что именно вы хотите получить :)))