尝试加密邮件时,为什么我的代码返回“ None”?

时间:2019-12-24 17:23:54

标签: python python-3.x encryption

我目前正在用python书编写本发明的Caesar Cypher,据我所知,我是逐字写代码的。解密消息没有问题,但是当我尝试加密任何内容时,它将返回“ None”。我不知道自己在做什么错,并且在理解如何解决它时遇到了麻烦。这是下面的完整代码。我们将不胜感激,所以我可以继续前进并测试蛮力功能。

# Caesar Cipher

MAX_KEY_SIZE = 26

def getMode():
 while True:
     print('Do you wish to encrypt or decrypt or brute force a message?')
     mode = input().lower()
     if mode in 'encrypt e decrypt d brute b'.split():
         return mode
     else:
         print('Enter either "encrypt" or "e" or "decrypt" or "d" or "brute" or "b".')

def getMessage():
 print('Enter your message:')
 return input()

def getKey():
 key = 0
 while True:
     print('Enter the key number (1-%s)' % (MAX_KEY_SIZE))
     key = int(input())
     if (key >= 1 and key <= MAX_KEY_SIZE):
         return key

def getTranslatedMessage(mode, message, key):
 if mode[0] == 'd':
     key = -key
     translated = ''

     for symbol in message:
         if symbol.isalpha():
             num = ord(symbol)
             num += key

             if symbol.isupper():
                 if num > ord('Z'):
                     num -= 26
                 elif num < ord('A'):
                     num += 26
             elif symbol.islower():
                 if num > ord('z'):
                     num -= 26
                 elif num < ord('a'):
                     num += 26

             translated += chr(num)
         else:
             translated += symbol
     return translated

mode = getMode()
message = getMessage()
if mode[0] != 'b':
 key = getKey()

print('Your translated text is:')
if mode[0] != 'b':
 print(getTranslatedMessage(mode, message, key))
else:
 for key in range(1, MAX_KEY_SIZE + 1):
     print(key, getTranslatedMessage('decrypt', message, key))





0 个答案:

没有答案