Cifra colunar

Published by Mubashir Hassan in

A cifra colunar é uma cifra de transposição que funciona assim.

Comece com uma mensagem secreta:

msg = "Meet me by the lake at midnight. Bring shovel."

Transforme as letras maiúsculas em minúsculas e remova a pontuação e os espaços:

msg = "meetmebythelakeatmidnightbringshovel"

Em seguida, escolha uma palavra-chave formada por letras distintas:

keyword = "python"

Divida a mensagem em blocos com o mesmo comprimento da palavra-chave e escreva-os em linhas abaixo da palavra-chave. Depois, numere as colunas com base na ordem alfabética das letras da palavra-chave:

python
meetme
bythel
akeatm
idnigh
tbring
shovel
465132

Leia a mensagem cifrada (texto cifrado) nas colunas, na ordem especificada pelos números:

ciphertext = "thaiivelmhglmetgnembaitsetenroeykdbh"

Se o comprimento da mensagem não for múltiplo do comprimento da palavra-chave, preencha cada espaço em branco com "x". Por exemplo:

msg = "Meet me at midnight."

keyword = "python"
python
meetme
atmidn
ightxx

Crie uma função que receba uma string e uma palavra-chave. Retorne o texto cifrado se a string estiver em texto simples (ou seja, dividida em palavras normais em inglês e com pontuação), ou a mensagem decifrada se a string estiver em texto cifrado. A mensagem decifrada resultante não terá espaços.

Exemplos

cipher("Meet me by the lake at midnight. Bring shovel.", "python")
➞ "thaiivelmhglmetgnembaitsetenroeykdbh"

cipher("meeanbsleyamgioxebltirhxttkihnvxmhedtgex", "monty")
➞ "meetmebythelakeatmidnightbringshovelxxxx"

cipher("Mission Delta Kilo Sierra has been compromised. Kill Steve. Evacuate", "cake")
➞ "ioliiabcrsiteuxmieksrsnpiksecesdaoraemmdlvatxsntleheooelevax"

Notas

N/A