X-Git-Url: http://git.tomasm.cz/krypto.git/blobdiff_plain/ee02d49796a9fcc1ff8be4a69149c0a371121d8e..9190950f8ca3452862919816abb6e18fb152d636:/robot.py diff --git a/robot.py b/robot.py index 16eaaf0..58fed48 100755 --- a/robot.py +++ b/robot.py @@ -9,8 +9,10 @@ from ocesavac import ocesat import jakobsen from jakobsen import reference import koincidence +import posuny import pickle import os +import re ABECEDA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' @@ -55,7 +57,7 @@ if opsny == 'H': sys.exit() if 'L' in opsny: mail = pickle.load(open('./msg_last.tmp')) - if (mail['From'] != odesilatel): + if ((re.match(r".*\<(.*)\>.*", mail['From']).group(1) or mail['From']) != (re.match(r".*\<(.*)\>.*", odesilatel).group(1) or odesilatel)): posli_mail(odesilatel, "Omluva", "Omlouvam se," " ale Vase zprava uz bohuzel neni na serveru ulozena.\n") sys.exit() @@ -118,7 +120,6 @@ analyza.append("\nIndexy koincidence (vzdy bez mezer):") analyza.append(koincidence.tabulka_indexu(zprava)) # Jakobsen -# TODO verze bez mezer if mod_m: analyza.append("\nJakobsen (s mezerami):") analyza.append(jakobsen.desifruj(zprava, './ref')) @@ -127,21 +128,15 @@ if mod_x: analyza.append(jakobsen.desifruj(zprava, './bref')) # Posuny v abecede -# TODO najit nejvhodnejsi posuny a vypsat jenom ty -def posun(char): - if 65 <= ord(char) < 90: - return chr(ord(char) + 1) - if ord(char) == 90: - return 'A' - else: - return char +(posun, posunuty_text) = posuny.nejlepsi(zprava) + if 'P' in opsny or 'A' in opsny: - analyza.append("\nPosuny v abecede:") - posunuty = zprava - for i in range(26): - posunuty = map(posun, posunuty) - analyza.append(''.join(posunuty)) + analyza.append("\nPosuny v abecede (nejlepsi posun {0}):".format(posun)) + analyza.append("{0} {1}".format(i, posuny.vsechny(zprava)[i]) for i in range(26)) +else: + analyza.append("\nNejlepsi posun ({0}):".format(posun)) + analyza.append(posunuty_text) # Bigramy if ('B' in opsny or 'A' in opsny): @@ -186,5 +181,6 @@ pickle.dump(mail, f) f.close() f = open('./robot.log', 'a') -f.write(asctime() + " " + odesilatel + "\n") +odesilatel2 = re.match(r".*\<(.*)\>.*", odesilatel) or odesilatel +f.write(asctime() + " " + odesilatel2 + " " + opsny + "\n") f.close()