Transpozisyon Şifresinin Şifresini Çözme

Bu bölümde, transpozisyon şifresinin şifresini çözme prosedürünü öğreneceksiniz.

Kod

Bir aktarım şifresinin şifresini çözmenin daha iyi anlaşılması için aşağıdaki kodu inceleyin. Mesaj için şifre metniTransposition Cipher anahtar ile 6 olarak getirildi 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()

Açıklama

Şifreleme metni ve bahsedilen anahtar, karakterleri sütun formatında yerleştirerek ve yatay bir şekilde okuyarak şifreleme metnini ters teknikte deşifre etmek veya deşifre etmek için girdi parametreleri olarak alınan iki değerdir.

Harfleri bir sütun biçiminde yerleştirebilir ve daha sonra aşağıdaki kod parçasını kullanarak bunları birleştirebilir veya birleştirebilirsiniz:

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)

Çıktı

Transpozisyon şifresinin şifresini çözmek için program kodu aşağıdaki çıktıyı verir -