projekty
/
krypto.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a57d587
)
desifrace vigenera
author
Tomas Musil
<tomik.musil@gmail.com>
Fri, 30 Mar 2012 12:40:19 +0000
(14:40 +0200)
committer
Tomas Musil
<tomik.musil@gmail.com>
Fri, 30 Mar 2012 12:40:19 +0000
(14:40 +0200)
robot.py
patch
|
blob
|
history
vigenere.py
patch
|
blob
|
history
diff --git
a/robot.py
b/robot.py
index
96f5a5b
..
16897a6
100755
(executable)
--- a/
robot.py
+++ b/
robot.py
@@
-150,7
+150,9
@@
if mod_x and len(zprava) >= 10:
# Vigenere
if 'V' in opsny:
analyza.append("\nHeslo k Vigenerovi (" + opsny[-1] + "):")
# Vigenere
if 'V' in opsny:
analyza.append("\nHeslo k Vigenerovi (" + opsny[-1] + "):")
- analyza.append(vigenere.zjisti_heslo(zprava, int(opsny[-1])))
+ vig_heslo, vig_text = vigere.vsechno(zprava, int(opsny[-1]))
+ analyza.append(vig_heslo)
+ analyza.append(vig_text)
# Jakobsen
if mod_m:
# Jakobsen
if mod_m:
diff --git
a/vigenere.py
b/vigenere.py
index
a441f57
..
01be7d2
100644
(file)
--- a/
vigenere.py
+++ b/
vigenere.py
@@
-2,12
+2,17
@@
from koincidence import rozklad
from ocesavac import ocesat
from koincidence import rozklad
from ocesavac import ocesat
-from posuny import nej_posun
+from posuny import nej_posun
, posun
from spolecne import cisla_na_text
from spolecne import cisla_na_text
-def zjisti_heslo(zprava, delka_h):
+def soucet(x, y):
+ return x + y
+
+def vysledek(zprava, delka_h):
"""Najde heslo dane delky, pri jehoz aplikaci budou frekvence znaku nejlepe
odpovidat cestine."""
rozklady = rozklad(ocesat(zprava, False), delka_h)
posuny = [nej_posun(text) for text in rozklady]
"""Najde heslo dane delky, pri jehoz aplikaci budou frekvence znaku nejlepe
odpovidat cestine."""
rozklady = rozklad(ocesat(zprava, False), delka_h)
posuny = [nej_posun(text) for text in rozklady]
- return cisla_na_text(posuny)
\ No newline at end of file
+ posunute = [''.join([posun(c, posuny[i]) for c in rozklady[i]]) for i in range(len(posuny))]
+ vysledek = [x for x in reduce(soucet, (map(None, *posunute)[i] for i in range(len(rozklady[0])))) if x != None]
+ return cisla_na_text(posuny), ''.join(vysledek)