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 -