Dekripsi dari Transposition Cipher

Dalam bab ini, Anda akan mempelajari prosedur untuk mendekripsi sandi transposisi.

Kode

Perhatikan kode berikut untuk pemahaman yang lebih baik tentang mendekripsi sandi transposisi. Teks sandi untuk pesanTransposition Cipher dengan kunci sebagai 6 diambil sebagai 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()

Penjelasan

Teks sandi dan kunci yang disebutkan adalah dua nilai yang diambil sebagai parameter masukan untuk mendekode atau mendekripsi teks sandi secara terbalik dengan menempatkan karakter dalam format kolom dan membacanya secara horizontal.

Anda dapat menempatkan huruf dalam format kolom dan kemudian menggabungkan atau menggabungkannya bersama-sama menggunakan bagian kode berikut -

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)

Keluaran

Kode program untuk mendekripsi cipher transposisi memberikan output berikut -