Python 维格纳密码令人难以置信地困惑

Python 维格纳密码令人难以置信地困惑,python,encryption,vigenere,Python,Encryption,Vigenere,我已经被困在这个问题上好几个小时了。我一直在尝试用预设的vigenere密钥加密预设消息。因此,名称让我们说“bob”按键“abc”移位,它将单词bob按ascii值“abc”移位 我现在有这段代码,但它没有打印任何东西,我对如何做感到难以置信的困惑 def vigenere(key, letter): keyVal = ord(key) letterVal = ord(letter) keyVal = keyVal - 97 letterVal = key

我已经被困在这个问题上好几个小时了。我一直在尝试用预设的vigenere密钥加密预设消息。因此,名称让我们说“bob”按键“abc”移位,它将单词bob按ascii值“abc”移位

我现在有这段代码,但它没有打印任何东西,我对如何做感到难以置信的困惑

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")
它返回:

rqr

你如何调用这个函数?还是问题出在你身上?@tripleee我以为我是通过将它们赋给letterval/keyval变量来调用它的。在你的示例中,你没有调用
vignere(key,letter)
。。。您是否只需要使用
字母
参数调用它?可能与如何使用键打印短语重复?例如,如果短语是cat,而键是abc,则可以使用ascii键来移动短语中的各个字符。c变成d,a变成c,t变成w。把猫变成dcw。你是说解密吗?不是解密。说到python,我完全是个傻瓜。它所做的就是创建一个加密短语,每个字母上都有一个ascii移位。谢谢你的帮助far@SepZ检查编辑的答案,现在显示“pop”变为“rqr”,键为:“c”。这里c=2,因为你从cI中减去97(即“a”),这里没有使用“a”,它不会产生任何效果,因为“a”-“a”是0,所以“pop”将与“pop”保持相同