# Crypto ## How the columns have turned - ex0244 ### Decryption tool ```python #!/usr/bin/env python3 def blocks(width, txt): len_text = len(txt) block_size = int(len_text / width) return [txt[i:i + block_size] for i in range(0, len(txt), block_size)] def redo(derived_key, blocks): return [blocks[int(derived_key[i])-1][::-1] for i in range(len(derived_key))] def transpose(array): return [row for row in map(list, zip(*array))] def flatten(array): return "".join([i for sub in array for i in sub]) if __name__ == '__main__': key = '729513912306026' derived_key = [13, 5, 14, 10, 3, 8, 15, 4, 6, 9, 1, 11, 2, 7, 12] width = len(key) with open('encrypted_messages.txt', 'r') as f: enc_text = [msg.strip() for msg in f.readlines()] for msg in enc_text: blocks_1 = blocks(width, msg) redo_1 = redo(derived_key, blocks_1) transp = transpose(redo_1) flatt = flatten(transp) print(flatt) ```