X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=szyfrow%2Fcadenus.py;h=b56500c6de1f01df5d602664b04731cb5008429d;hb=3350a462f460e81d96c587466f5b6a88cbba1f7e;hp=0f33ac517070aa6eb892751b2c61bf24ac63f5b9;hpb=14e5bc61282ef63116332c48bc9e4265fdc486c5;p=szyfrow.git diff --git a/szyfrow/cadenus.py b/szyfrow/cadenus.py index 0f33ac5..b56500c 100644 --- a/szyfrow/cadenus.py +++ b/szyfrow/cadenus.py @@ -97,7 +97,7 @@ def cadenus_break(message, words=keywords, doubled_letters='vw', fitness=Pbigrams): c = make_cadenus_keycolumn(reverse=True) valid_words = [w for w in words - if max(transpositions_of(w)) <= len(c)] + if len(transpositions_of(w)) == len(message) // 25] with multiprocessing.Pool() as pool: results = pool.starmap(cadenus_break_worker, [(message, w, @@ -107,16 +107,17 @@ def cadenus_break(message, words=keywords, for w in words for s in string.ascii_lowercase for r in [True, False] - if max(transpositions_of(w)) <= len( - make_cadenus_keycolumn( - doubled_letters=doubled_letters, start=s, reverse=r)) + # if max(transpositions_of(w)) <= len( + # make_cadenus_keycolumn( + # doubled_letters=doubled_letters, start=s, reverse=r)) ]) # return list(results) return max(results, key=lambda k: k[1]) def cadenus_break_worker(message, keyword, keycolumn, fitness): - message_chunks = chunks(message, 175) - plaintext = ''.join(cadenus_decipher(c, keyword, keycolumn) for c in message_chunks) + # message_chunks = chunks(message, 175) + # plaintext = ''.join(cadenus_decipher(c, keyword, keycolumn) for c in message_chunks) + plaintext = cadenus_decipher(message, keyword, keycolumn) fit = fitness(plaintext) return (keyword, keycolumn), fit