如何解密 vigenere 柱状转置密码
How to decrypt a vigenere columnar transposition cipher
我正在参加旧考试,几天后就是期末考试。我想解密一段密文,先用vigenere加密,再用columna转置加密。如何解密以获取原始消息?
message -> rgyqhbmnwaazxcajittuzqyagkx
vigenere key -> final
columnar transposition key -> exam
我在这上面花了几个小时,但没有得到任何结果。我首先想通过柱状解密,然后是 Vigenere。我认为输出应该看起来像英文,但我只是变得垃圾。我的vigenere代码在下面,我猜问题出在柱状,我遇到的所有代码都以数字为键,但我有一个字母键。
def decrypt(message, password):
decrypted = ''
for i in range(0, len(message)):
letter = ord(message[i]) - ord(password[i%len(password)]) + 65
if letter < 65:
letter += 26
decrypted += chr(letter)
return decrypted
谢谢
柱状转置确实以单词为键,而不是数字。如果 "exam" 是密钥,那么您从左边写出消息,以每行四行的形式写入,然后从上到下从第 3 列开始读出密文,然后是第 1 列,然后是第 4 列,然后是第 2 列。该顺序来自字母 "e"、"x"、"a"、"m" 的字母顺序:“2nd”、“4th”、“1st”、“3rd”。
例如要加密"THIS IS THE MESSAGE":
E X A M
----------
T H I S
I S T H
E M E S
S A G E
--> ITEG 联系上海证券交易所 HSMA
即"ITEGTIESSHSEHSMA"。
反之即可解密。我不想给你解决你的作业,但我会说,当你通过"exam"的柱状转置正确解密时,你会发现一个以"nzrawq..."
开头的字符串
当您使用 vigenere 密码进一步解密该字符串时,您确实会找到英文单词,特别是以 "ireallywant..."
开头的字符串
我正在参加旧考试,几天后就是期末考试。我想解密一段密文,先用vigenere加密,再用columna转置加密。如何解密以获取原始消息?
message -> rgyqhbmnwaazxcajittuzqyagkx
vigenere key -> final
columnar transposition key -> exam
我在这上面花了几个小时,但没有得到任何结果。我首先想通过柱状解密,然后是 Vigenere。我认为输出应该看起来像英文,但我只是变得垃圾。我的vigenere代码在下面,我猜问题出在柱状,我遇到的所有代码都以数字为键,但我有一个字母键。
def decrypt(message, password):
decrypted = ''
for i in range(0, len(message)):
letter = ord(message[i]) - ord(password[i%len(password)]) + 65
if letter < 65:
letter += 26
decrypted += chr(letter)
return decrypted
谢谢
柱状转置确实以单词为键,而不是数字。如果 "exam" 是密钥,那么您从左边写出消息,以每行四行的形式写入,然后从上到下从第 3 列开始读出密文,然后是第 1 列,然后是第 4 列,然后是第 2 列。该顺序来自字母 "e"、"x"、"a"、"m" 的字母顺序:“2nd”、“4th”、“1st”、“3rd”。
例如要加密"THIS IS THE MESSAGE":
E X A M
----------
T H I S
I S T H
E M E S
S A G E
--> ITEG 联系上海证券交易所 HSMA
即"ITEGTIESSHSEHSMA"。
反之即可解密。我不想给你解决你的作业,但我会说,当你通过"exam"的柱状转置正确解密时,你会发现一个以"nzrawq..."
开头的字符串当您使用 vigenere 密码进一步解密该字符串时,您确实会找到英文单词,特别是以 "ireallywant..."
开头的字符串