gpt4 book ai didi

python - Vigenere 密码不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:20 25 4
gpt4 key购买 nike

所以我的老师创造了这个 vigenere 密码,他说它可以工作。然而,在使用在线 vigenere 密码检查其结果后,它似乎不是正确加密的结果。

我不知道如何修复它,我想知道是否有人可以指导我找出错误,并告诉我如何修复它们。

这是代码

base = ord("a")
alphabets = 'abcdefghijklmnopqrstuvwxyz'
keyword = input('What is your keyword')
message = input('What is your message to be coded or encoded?').lower()

expandedKeyword = ""
while len(expandedKeyword) < len(message):
for i in keyword:
if len(expandedKeyword) < len(message):
expandedKeyword += i


cipheredMessage = ''
indexofKeyword = 0
for i in message:
if i == ' ':
cipheredMessage = cipheredMessage + " "
else:
shiftedIndex = (ord(i) + ord(expandedKeyword[indexofKeyword])-base) % 26 +base
cipheredMessage = cipheredMessage + chr(shiftedIndex)
indexofKeyword = indexofKeyword + 1



print(cipheredMessage)

我理解正在发生的事情的概念,但我似乎无法找出错误。

最佳答案

您计算的shiftedIndex 是错误的,您需要将base 减去两次,但您目前只减去一次。示例 -

shiftedIndex = (ord(i) + ord(expandedKeyword[indexofKeyword])-2*base) % 26 +base

这是因为第一次需要从ord(i)中减去base得到i的索引(来自'a' ) ,第二次从 ord(expandedKeyword[indexofKeyword]) 获取该字符的索引(来自 'a' )。所以它应该看起来像(为了更好地理解)-

shiftedIndex = ((ord(i) - base) + (ord(expandedKeyword[indexofKeyword])-base)) % 26 + base

关于python - Vigenere 密码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32126091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com