令人难以置信的维吉尼亚密码

Vigenere Cipher Incredibly Confused

我已经坚持了好几个小时了。我一直在尝试使用预设的 vigenere 密钥加密预设消息。所以这个名字可以说 'bob' 通过键 'abc' 移动它通过 ascii 值 'abc'.

移动单词 bob

我现在有这段代码,但它没有打印任何东西,我对如何执行此操作感到非常困惑。

def vigenere(key, letter):

    keyVal = ord(key)
    letterVal = ord(letter)

    keyVal = keyVal - 97

    letterVal = keyVal + letterVal

    if letterVal >= ord("z"):
        letterVal = letterVal - 26

        print letterVal

你必须在字符串中循环执行此操作,就像我在下面所做的那样:

def vigenere(key, letter):

    letterChar = ""
    for i in range(len(letter)):
        keyVal = ord(key)
        letterVal = ord(letter[i])
        keyVal = keyVal - 97
        letterChar += chr(keyVal + letterVal)
        if letterVal >= ord('z'):
            letterVal = letterVal - 26

    print letterChar


vigenere('c', "pop")

它returns:

rqr