Python 维格纳密码令人难以置信地困惑
我已经被困在这个问题上好几个小时了。我一直在尝试用预设的vigenere密钥加密预设消息。因此,名称让我们说“bob”按键“abc”移位,它将单词bob按ascii值“abc”移位 我现在有这段代码,但它没有打印任何东西,我对如何做感到难以置信的困惑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
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”保持相同