首页 文章

如何解密vigenere柱状转置密码

提问于
浏览
0

我正在通过旧考试,我的决赛将在几天内完成 . 我想解密一个密文,它首先由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

谢谢

1 回答

  • 0

    柱状转置确实将单词作为键,而不是数字 . 如果“检查”是关键,那么你从左边写出消息以四行写出,从第3列开始从上到下读取密文,然后是第1列,第4列,第2列,第2列 . 来自字母“e”,“x”,“a”,“m”的字母顺序:“2nd”,“4th”,“1st”,“3rd” .

    例如,加密“这是消息”:

    E  X  A  M
    ----------
    T  H  I  S
    I  S  T  H
    E  M  E  S  
    S  A  G  E
    
    • ITEG TIES SHSE HSMA

    即,“ITEGTIESSHSEHSMA” .

    要解密,请执行相反的操作 . 我不想为你解决你的功课,但我会说,当你通过“检查”的柱状换位正确解密时,你会发现一个以“nzrawq ......”开头的字符串 .

    当你用vigenere密码进一步解密那个字符串时,你确实会找到英文单词,特别是一个以“ireallywant ......”开头的字符串 .

相关问题