Enigma Brute Force Decipher - PullRequest
       6

Enigma Brute Force Decipher

0 голосов
/ 19 марта 2019

Я новичок в кодировании на Python, и логика / идея, которую я пытаюсь реализовать, такова:

Мне дали полностью закодированную машину Enigma и закодированное сообщение. Мне дают только слово «шпаргалка» из двух слов в конце сообщения, а длина ключа составляет 3.

Я думаю, что должен создать цикл для всех возможных комбинаций клавиш, таких как «AAA», «AAB», ... и попробовать каждую комбинацию, чтобы увидеть, какая из них является ключом. Цикл прервется, как только последние два слова декодированного сообщения совпадут с моей кроваткой, что будет означать, что я нашел правильные трехбуквенные ключи (например, «GKJ»).

Но так как я новичок, я немного растерялся в части кодирования.

Мне удалось выполнить только часть для создания возможных комбинаций:

from itertools import combinations_with_replacement
import string
alphabets = string.ascii_letters.lower()
for (a,b,c) in combinations_with_replacement(alphabets, 3):
    guess = (a+b+c)
    print (guess)

так что моя проблема в том, как мне поместить каждую из этих трех буквенных догадок в «машину», и если она неверна, она переходит к следующей комбинации и повторяется до тех пор, пока не найдет эту кроватку из двух слов?

Надеюсь, это имеет смысл. Спасибо

...