换位密码的解密
在本章中,您将学习解密转置密码的过程。
代码
请观察以下代码,以便更好地理解解密转置密码。密钥为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)
输出
用于解密转置密码的程序代码给出以下输出 -