Привет, поэтому я пытаюсь написать функцию hack(), которая не принимает аргументов и возвращает итератор по всем возможным паролям.Создание итератора для грубой силы
В принципе, я должен использовать итератор для перебора пароля. Все, что я знаю из вопроса, что:
- Пароль состоит из трех сегментов.
- Первый сегмент пароля представляет собой объединение двух слов в следующем списке слов: [ «привет», «Прочь», «собака», «MrCool»]
- Средний сегмент «Donkey20»
- и последний сегмент состоит из двух цифр, которые вместе (т.е. 1 и 7 = 17), не являются не больше, чем 38. (и по крайней мере 0)
Мой метод мышления заключается в следующем:
- Найти все возможные комбинации POSSIBLE_WORDS с помощью перестановок Дополнения(). (Найти все возможности сегмента 1)
Для каждой комбинации в новом списке добавьте «Donkey20» до конца. (Например: helloBEGONEDonkey20)
Найти все возможные комбинации между элементами в списке THAT и POSSIBLE_NUMBERS.
Создание итератора, который перебирает все эти возможные пароли, и вернуть его
Моего текущий код только в состоянии сделать шаг 2, но вместо того, чтобы Donkey20 быть в конце каждой комбинации это на начало. (Например, Donkey20helloBEGONE вместо helloBEGONEDonkey20)
POSSIBLE_WORDS = ["hello", "BEGONE", "dog", "MrCool"]
MIDDLE = "Donkey20"
possible_numbers1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
possible_numbers2 = [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
possible_numbers3 = [29, 30, 31, 32, 33, 34, 35, 36, 37, 38]
POSSIBLE_NUMBERS = possible_numbers1 + possible_numbers2 + possible_numbers3
from itertools import permutations, combinations
def hack():
first_words = [''.join(word) for word in permutations(POSSIBLE_WORDS, 2)]
first_words.append(MIDDLE)
first_half = [''.join(word) for word in permutations(first_words, 2)]
В любом случае, чтобы устранить эту проблему? Как закончить оставшуюся часть шагов? Есть ли другой подход, который я мог бы использовать для кодирования этой программы?
Любая помощь будет очень признательна!
Благодарим вас за эти намеки, я действительно смог завершить остаток самостоятельно! –