X-Git-Url: http://git.tomasm.cz/krypto.git/blobdiff_plain/ee02d49796a9fcc1ff8be4a69149c0a371121d8e..d2399a8b51b8ce95b4d1349756aefd92e51671ab:/jakobsen.py?ds=inline diff --git a/jakobsen.py b/jakobsen.py index 5c0aa24..40a1d1c 100644 --- a/jakobsen.py +++ b/jakobsen.py @@ -13,13 +13,11 @@ def nova_tabulka(zprava, abc=MABECEDA): for j in abc: tabulka[i][j] = 0 for i in range(len(zprava) - 1): - if zprava[i] in tabulka and zprava[i+1] in tabulka[zprava[i]]: - tabulka[zprava[i]][zprava[i+1]] += 1 + tabulka[zprava[i]][zprava[i+1]] += 1 celkem = sum(sum(tab2.values()) for tab2 in tabulka.values()) - if celkem != 0: - for i in abc: - for j in abc: - tabulka[i][j] /= float(celkem) + for i in abc: + for j in abc: + tabulka[i][j] /= float(celkem) return tabulka def vzdalenost(tab1, tab2, abc=MABECEDA): @@ -66,13 +64,17 @@ def jakobsen(zprava, ref): vzdal = v1 else: slovnik[x], slovnik[y] = slovnik[y], slovnik[x] + return slovnik + +def desifruj(zprava, mezery=True): + if mezery: + f = open('ref') + else: + f = open('bref') + ref = pickle.load(f) + f.close() + 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 desifruj(zprava, refs): - f = open(refs, 'rb') - ref = pickle.load(f) - f.close() - return jakobsen(zprava, ref)