Descifrado del cifrado de transposición

En este capítulo, aprenderá el procedimiento para descifrar el cifrado de transposición.

Código

Observe el siguiente código para comprender mejor cómo descifrar un cifrado de transposición. El texto cifrado del mensajeTransposition Cipher con llave como 6 se busca 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()

Explicación

El texto cifrado y la clave mencionada son los dos valores que se toman como parámetros de entrada para decodificar o descifrar el texto cifrado en técnica inversa colocando los caracteres en formato de columna y leyéndolos de manera horizontal.

Puede colocar letras en un formato de columna y luego combinarlas o concatenarlas usando el siguiente 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)

Salida

El código del programa para descifrar el cifrado de transposición da la siguiente salida: