import math
from enum import Enum
from itertools import starmap, zip_longest
-from support.utilities import *
-from support.language_models import *
+from szyfrow.support.utilities import *
+from szyfrow.support.language_models import *
-from logger import logger
-
def railfence_encipher(message, height, fillvalue=''):
"""Railfence cipher.
Works by splitting the text into sections, then reading across them to
return cat(c for r in zip_longest(*(down_rows + up_rows), fillvalue='') for c in r)
-def railfence_break(message, max_key_length=20,
- fitness=Pletters, chunksize=500):
- """Breaks a railfence cipher using a matrix of given rank and letter frequencies
-
-
- """
-
- sanitised_message = sanitise(message)
- results = starmap(worker, [(sanitised_message, i, fitness)
- for i in range(2, max_key_length+1)])
- return max(results, key=lambda k: k[1])
-
-
def railfence_break(message, max_key_length=20,
fitness=Pbigrams, chunksize=500):
"""Breaks a railfence cipher using a range of lengths and