Python Vigenere代码重复

2024-05-19 14:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我们必须为一个项目做一个维格纳密码,而我的代码只是不断地重复它自己。就像它不会运行加密或解密。 这是我的密码。 例如,它就是这样做的。。你知道吗

“嘿,用户!你知道吗

你的信息是什么??嗨

这封信有多少个字母?二

你想解密还是加密?解密

让我们解密你的信息!!你知道吗

你想解密还是加密?”你知道吗

print "Hey There user!"
def vig():
dore = raw_input("Do you want to decrypt or encrypt?")
if "decrypt" in dore: 
    print "Lets decrypt your message!!"
else:
    print "lets encrypt your message!!"


def dore(message):
encrypt = ''
decrypt = ''
if "encrypt" in vig(): 
 for i in range(0, len(message)):
    e = ord(message[i]) + ord(key[i%len(key)]) - 65
if e > 90:
    e -= 26
    encrypt += chr(e)
    print encrypt
if "decrypt" in vig():
    e = ord(message[i]) - ord(key[i%len(key)]) + 65
if e < 65:
    e += 26
    decrypt += chr(e)
    print decrypt

 ####################################
 ###########################################:)#####
 message = raw_input("whats your message??")
 key = raw_input("How many letters are in the message?")
 vig()
 dore(message)
 message = message
 encrypt = ''
 decrypt = ''

Tags: keyin密码messageinputyourrawlen
1条回答
网友
1楼 · 发布于 2024-05-19 14:32:34

dore中首先要做的事情之一是再次调用vig

if "encrypt" in vig():

尝试将加密和解密分离为两个函数并相应地调用它们:

def vig(message):
    ui = raw_input("Encrypt or decrypt? ").lower()
    if "decrypt" in ui:
        return decrypt(message)
    else:
        return encrypt(message)

此外,用户不需要输入消息的长度,只需执行以下操作:

key = len(message)

相关问题 更多 >