Python Vigenere代码重复错误

时间:2014-02-24 22:04:37

标签: python vigenere

我们必须为一个项目做一个vigenere密码,而我的代码只是不断重复。喜欢它不会运行加密或解密。 这是我的代码。 像这样是一个例子......

“嘿有用户!

你的消息是什么?嗨

邮件中有多少个字母?2

您想要解密还是加密?解密

让我们解密你的消息!!

您想要解密还是加密?“

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 = ''

1 个答案:

答案 0 :(得分:1)

您在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)