jakobsen jakobsen2
authorTomas Musil <tomik.musil@gmail.com>
Tue, 3 Apr 2012 23:11:07 +0000 (01:11 +0200)
committerTomas Musil <tomik.musil@gmail.com>
Tue, 3 Apr 2012 23:16:48 +0000 (01:16 +0200)
Prerazeni zpravy podle frekvence.

jakobsen.py

index 34eac4b..c4f82bc 100644 (file)
@@ -61,7 +61,6 @@ def prohod(sl_a, sl_b, tabulka):
     return
 
 def jakobsen(zprava, ref):
-    # TODO?zacit se substituci podle poradi frekvenci
     """Pro danou sifrovanou zpravu vrati substitucni slovnik odvozeny s pomoci
     Jakobsenova algoritmu s danou referencni tabulkou."""
     slovnik = dict(zip(ref.abeceda, ref.abeceda))
@@ -89,10 +88,14 @@ def desifruj(zprava, mezery=True):
         soubor = open('bref')
     ref = pickle.load(soubor)
     soubor.close()
+    zprava = substituce(zprava, dict(zip(poradi_dle_frekvence(zprava, ref.abeceda), ref.poradi)), ref.abeceda)
     slovnik = jakobsen(ocesat(zprava, mezery), ref)
     return '\n'.join([''.join(substituce(zprava, slovnik, ref.abeceda)),
                       ' '.join(ref.abeceda),
                       ' '.join([slovnik[c] for c in ref.abeceda])])
 
 def __test():
-    print desifruj('Sel pes do lesa a potkal dlazebni kostku.'.upper())
\ No newline at end of file
+    print desifruj('Mxbhfxn cbfbhinpr, wnx fv f gvzuyr cbenqv.'.upper())
+
+def __test2():
+    print desifruj('Sel pes do lesa a potkal dlazebni kostku. Chtelo by to jeste o neco delsi test, to tedy jo.'.upper())