การถอดรหัส Transposition Cipher
ในบทนี้คุณจะได้เรียนรู้ขั้นตอนในการถอดรหัสการเข้ารหัสการเปลี่ยนตำแหน่ง
รหัส
สังเกตรหัสต่อไปนี้เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับการถอดรหัสการเข้ารหัสการเปลี่ยนตำแหน่ง ข้อความการเข้ารหัสสำหรับข้อความTransposition Cipher ด้วยคีย์เป็น 6 ถูกดึงข้อมูลเป็น 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)
เอาต์พุต
รหัสโปรแกรมสำหรับถอดรหัสการเข้ารหัสการเปลี่ยนตำแหน่งให้ผลลัพธ์ต่อไปนี้ -