как можно ускорить генерацию рандомных паролей

написал код для тестирования безопасности пароля, но он уже ищет час мой пароль из 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 просто у вас в математикой немного туго :)

ваш код генерирует пароли пока не получит указанный пользователем пароль (зачем?)

давайте считать -

  1. словарь насчитывает 62 символа
  2. пароль содержит 12 символов
  3. всего возможно 62^12 = 3.226.266.762.397.899.821.056 вариантов
  4. пароли генерируются случайно, значит в среднем чтобы найти ваш пароль вам понадобится перебрать 1.613.133.381.198.949.910.528 вариантов
  5. пусть 1 пароль генерируется за 1 тик (а не в 1000+ раз медленнее как это и происходит на питоне), значит на компе со 100 ядрами и частотой 1ТГц вам понадобится полгода

а теперь скажите через сколько лет появятся такие компьютеры? :))))

и еще - поскольку процесс случайный - то с вероятностью 0.00000000000000000003% вы получите пароль сразу

Теперь касательно вашего вопроса - ничего вы не ускорите пока не поставите правильно задачу что именно вы хотите получить :)))

→ Ссылка