2016-11-16 180 views
0

我对我们的任务非常困惑:“开发程序的一部分,该程序生成程序用于加密消息的八个关键字符键”。我们正在尝试创建一个加密程序。该代码我到目前为止有:我现在需要做什么?

文件

def fileopen(): 
    filename=input('What is the name of the file: ') 

    with open(filename) as yarr: 
     contents=yarr.read() 
     return contents 

菜单

print ("Hello, welcome to the encryption/decryption program") 
print ("1 - Encryption") 
print ("2 - Decryption") 
print ("3 - Exit") 
choice=input ("Enter a Number") 
while True: 
    if choice=="1": 
     print("Encryption Selected") 
     filecontents=fileopen() 
     print(filecontents) 
     break 

    elif choice=="2": 
     print("Decryption Selected") 
     break 

    elif choice=="3": 
     print("Thank you, come again") 
     break 

    else: 
     choice=input("Incorrect number") 
     continue 
+0

我也很困惑。什么是“八键钥匙”?你可能是指“八个字符的键”(即八个字符的随机字符串)? –

回答

0

尝试使用恺撒密码。

这是我为它来源:

恺撒密码

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)) 
key = getKey() 

print('Your translated text is:') 
print(getTranslatedMessage(mode, message, key)) 

是这样工作的:

首先,如果你要解密或加密文本(写E或d,然后按回车确定)。接下来输入您的信息,然后按回车确认。接下来输入一个数字,并在您想要解密消息时记住它。然后按回车,你会得到你的加密/解密消息。

您可以重命名问题并在if语句中添加输入字段,以便它也转换文本文件。

希望这有助于:)

相关问题