Descriptografar Cifra de Transposição
Neste capítulo, você aprenderá o procedimento para descriptografar a cifra de transposição.
Código
Observe o código a seguir para uma melhor compreensão da descriptografia de uma cifra de transposição. O texto cifrado da mensagemTransposition Cipher com chave como 6 é obtido como Toners raiCntisippoh.
import math, pyperclip
def main():
myMessage= 'Toners raiCntisippoh'
myKey = 6
plaintext = decryptMessage(myKey, myMessage)
print("The plain text is")
print('Transposition Cipher')
def decryptMessage(key, message):
numOfColumns = math.ceil(len(message) / key)
numOfRows = key
numOfShadedBoxes = (numOfColumns * numOfRows) - len(message)
plaintext = float('') * numOfColumns
col = 0
row = 0
for symbol in message:
plaintext[col] += symbol
col += 1
if (col == numOfColumns) or (col == numOfColumns - 1 and row >= numOfRows - numOfShadedBoxes):
col = 0 row += 1 return ''.join(plaintext)
if __name__ == '__main__':
main()
Explicação
O texto cifrado e a chave mencionada são os dois valores tomados como parâmetros de entrada para decodificar ou descriptografar o texto cifrado na técnica reversa, colocando os caracteres em formato de coluna e lendo-os na horizontal.
Você pode colocar letras em um formato de coluna e depois combiná-las ou concatená-las usando o seguinte código -
for symbol in message:
plaintext[col] += symbol
col += 1
if (col == numOfColumns) or (col == numOfColumns - 1 and row >= numOfRows - numOfShadedBoxes):
col = 0
row += 1
return ''.join(plaintext)
Resultado
O código do programa para descriptografar a cifra de transposição fornece a seguinte saída -