📜  换位密码解密

📅  最后修改于: 2020-11-08 08:32:57             🧑  作者: Mango


在本章中,您将学习解密转置密码的过程。

观察以下代码,以更好地理解解密转置密码。密钥为6的消息“ Transposition Cipher ”的密文以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()

说明

密文和提到的密钥是两个值,它们是输入参数,用于通过以列格式放置字符并以水平方式读取它们来以反向技术对密文进行解码或解密。

您可以将字母以列格式放置,然后使用以下代码将它们组合或连接在一起:

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)

输出

解密转置密码的程序代码给出以下输出-

解密换位