転置式暗号の復号化

この章では、転置式暗号を復号化する手順を学習します。

コード

転置式暗号の復号化をよりよく理解するために、次のコードを確認してください。メッセージの暗号文Transposition Cipher キーとして 6 としてフェッチされます 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()

説明

暗号文と言及されたキーは、文字を列形式で配置し、水平方向に読み取ることにより、逆の手法で暗号文をデコードまたは復号化するための入力パラメーターとして使用される2つの値です。

文字を列形式で配置し、後で次のコードを使用してそれらを結合または連結することができます-

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)

出力

転置式暗号を復号化するためのプログラムコードは、次の出力を提供します。