|
|
|
@ -1,80 +1,24 @@ |
|
|
|
import csv |
|
|
|
|
|
|
|
alphabet = [["A", ".-"], |
|
|
|
["B", "-..."], |
|
|
|
["C", "-.-."], |
|
|
|
["D", "-.."], |
|
|
|
["E", "."], |
|
|
|
["F", "..-."], |
|
|
|
["G", "--."], |
|
|
|
["H", "...."], |
|
|
|
["I", ".."], |
|
|
|
["J", ".---"], |
|
|
|
["K", "-.-"], |
|
|
|
["L", ".-.."], |
|
|
|
["M", "--"], |
|
|
|
["N", "-."], |
|
|
|
["O", "---"], |
|
|
|
["P", ".--."], |
|
|
|
["Q", "--.-"], |
|
|
|
["R", ".-."], |
|
|
|
["S", "..."], |
|
|
|
["T", "-"], |
|
|
|
["U", "..-"], |
|
|
|
["V", "...-"], |
|
|
|
["W", ".--"], |
|
|
|
["X", "-..-"], |
|
|
|
["Y", "-.--"], |
|
|
|
["Z", "--.."]] |
|
|
|
|
|
|
|
dictDE_file = open("wordlist-german.txt", "r") |
|
|
|
dictEN_file = open("wordlist-english.txt", "r") |
|
|
|
|
|
|
|
reader = csv.reader(dictDE_file) |
|
|
|
dictDE = [row[0].upper() for row in reader] |
|
|
|
reader = csv.reader(dictEN_file) |
|
|
|
dictEN = [row[0].upper() for row in reader] |
|
|
|
dictionary = dictEN |
|
|
|
|
|
|
|
morse_cipher = "..-..--..-......-" |
|
|
|
|
|
|
|
|
|
|
|
def latin_to_morse(word): |
|
|
|
result = "" |
|
|
|
for letter in word: |
|
|
|
for latin, morse in alphabet: |
|
|
|
if letter == latin: |
|
|
|
result += morse |
|
|
|
return result |
|
|
|
|
|
|
|
|
|
|
|
def guess_chars(morse_text, plain_text=""): |
|
|
|
if morse_text == "": |
|
|
|
char_guesses.append(plain_text) |
|
|
|
else: |
|
|
|
for latin, morse in alphabet: |
|
|
|
if morse == morse_text[0:len(morse)]: |
|
|
|
guess_chars(morse_text[len(morse):len(morse_text)], (plain_text + latin)) |
|
|
|
|
|
|
|
|
|
|
|
def guess_vocabs(word, phrase=""): |
|
|
|
if word == "": |
|
|
|
vocab_guesses.append(phrase) |
|
|
|
else: |
|
|
|
for vocab in dictionary: |
|
|
|
if vocab == word[0:len(vocab)]: |
|
|
|
guess_vocabs(word[len(vocab):len(word)], (phrase + vocab + " ")) |
|
|
|
|
|
|
|
|
|
|
|
char_guesses = [] |
|
|
|
guess_chars(morse_cipher) |
|
|
|
print("Chars guessed. char_guesses complete.") |
|
|
|
|
|
|
|
guess_list_length = len(char_guesses) |
|
|
|
for index, word in enumerate(char_guesses): |
|
|
|
print("(", index, "/", guess_list_length, ") - ", word, "...", end="") |
|
|
|
vocab_guesses = [] |
|
|
|
guess_vocabs(word) |
|
|
|
print("\r", end="") |
|
|
|
if vocab_guesses: |
|
|
|
print("Found something: ", vocab_guesses) |
|
|
|
from morse_decrypt.dict import Dict |
|
|
|
from morse_decrypt.morse_decrypt import MorseDecrypt |
|
|
|
from morse_decrypt.word_guess import WordGuess |
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
morse_cipher = "..-..--..-......-" |
|
|
|
|
|
|
|
word_guess = WordGuess( |
|
|
|
Dict([ |
|
|
|
"dict/wordlist-german.txt", |
|
|
|
"dict/wordlist-english.txt" |
|
|
|
]) |
|
|
|
) |
|
|
|
morse_decrypt = MorseDecrypt() |
|
|
|
char_guesses = morse_decrypt.guess_morse_text(morse_cipher) |
|
|
|
print("Chars guessed. char_guesses complete.") |
|
|
|
|
|
|
|
guess_list_length = len(char_guesses) |
|
|
|
for index, word in enumerate(char_guesses): |
|
|
|
print("(", index, "/", guess_list_length, ") - ", word, "...", end="") |
|
|
|
vocab_guesses = word_guess.guess_vocabs(word, '', []) |
|
|
|
print("\r", end="") |
|
|
|
if vocab_guesses: |
|
|
|
print("Found something: ", vocab_guesses) |