# 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)
```