return ''.join([chr(int(round(l)) % 26 + ord('a'))
for l in sum(enciphered_chunks, [])])
-
def hill_decipher(matrix, message, fillvalue='a'):
"""Hill cipher
inverse_matrix = (inverse_determinant * adjoint) % 26
return hill_encipher(inverse_matrix, message, fillvalue)
+
class PocketEnigma(object):
"""A pocket enigma machine
The wheel is internally represented as a 26-element list self.wheel_map,