首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vigenere密码无效

Vigenere密码无效
EN

Stack Overflow用户
提问于 2015-08-20 18:50:45
回答 1查看 418关注 0票数 2

所以我的老师发明了这个vigenere密码他说它起作用了。然而,在用在线病毒密码检查其结果后,它似乎没有得到正确的加密。

我不知道如何修复它,我想知道是否有人能指导我的错误,并告诉我如何纠正它们。

这是代码

代码语言:javascript
复制
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)

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 18:57:38

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

代码语言:javascript
复制
shiftedIndex = (ord(i) + ord(expandedKeyword[indexofKeyword])-2*base) % 26 +base

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

代码语言:javascript
复制
shiftedIndex = ((ord(i) - base) + (ord(expandedKeyword[indexofKeyword])-base)) % 26 + base
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32126091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档