Python 如何解密vigenere列转置密码
我正在进行旧的考试,几天后就要期末考试了。我想解密一个密文,它首先由vigenere加密,然后由columna转置加密。如何解密以获取原始消息Python 如何解密vigenere列转置密码,python,python-2.7,encryption,transpose,vigenere,Python,Python 2.7,Encryption,Transpose,Vigenere,我正在进行旧的考试,几天后就要期末考试了。我想解密一个密文,它首先由vigenere加密,然后由columna转置加密。如何解密以获取原始消息 message -> rgyqhbmnwaazxcajittuzqyagkx vigenere key -> final columnar transposition key -> exam 我在这上面花了几个小时,但什么也没说出来。首先我想由专栏作家维格纳解密。我认为输出应该是英文的,但我只是得到了垃圾。下面是我的vigenere代
message -> rgyqhbmnwaazxcajittuzqyagkx
vigenere key -> final
columnar transposition key -> exam
我在这上面花了几个小时,但什么也没说出来。首先我想由专栏作家维格纳解密。我认为输出应该是英文的,但我只是得到了垃圾。下面是我的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
def解密(消息、密码):
解密=“”
对于范围(0,len(消息))中的i:
字母=ord(信息[i])-ord(密码[i%len(密码)])+65
如果字母<65:
字母+=26
解密+=chr(字母)
返回解密
谢谢柱状换位确实以单词为键,而不是数字。如果“exam”是键,则从左到右写出消息,以四行为一行,从上到下读取密文,从第3列开始,然后从第1列开始,然后从第4列开始,最后从第2列开始。顺序来自字母“e”、“x”、“a”、“m”的字母顺序:“2”、“4”、“1”、“3” 例如,要加密“这就是消息”: -->ITEG系SHSE HSMA 即“Itegtieshssehsma” 要解密,请执行相反的操作。我不想为你解决你的家庭作业,但我要说的是,当你通过带“exam”的列换位正确解密时,你会发现一个以“nzrawq…”开头的字符串
当你用Vigener密码进一步解密该字符串时,你确实会发现英文单词,特别是以“iAllywant…”开头的字符串。你对我的训练再好不过了
E X A M
----------
T H I S
I S T H
E M E S
S A G E