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: