Advertisement
Guest User

Caesar Cipher

a guest
Jan 16th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.81 KB | None | 0 0
  1. # Caesar Cipher
  2.  
  3. MAX_KEY_SIZE = 26
  4.  
  5. def getMode():
  6.     while True:
  7.         print('Do you wish to encrypt or decrypt a message? You can also brute force an answer. Please enter e for encrypt, d for decrypt or b for brute')
  8.         mode = input().lower()
  9.         if mode in 'encrypt e decrypt d brute b'.split():
  10.             return mode
  11.         elif mode !="encryot e decrypt d brute b":
  12.             print('Enter either "encrypt" or "e" or "decrypt" or "d" or "brute" or "b".')
  13.         elif mode == "exit":
  14.             quit
  15.    
  16.    
  17.        
  18.  
  19. def getMessage():
  20.     print('Enter your message:')
  21.     return input()
  22.  
  23. def getKey():
  24.     key = 0
  25.     while True:
  26.         print('Enter the key number (1-%s)' % (MAX_KEY_SIZE))
  27.         key = int(input())
  28.         if (key >= 1 and key <= MAX_KEY_SIZE):
  29.             return key
  30.  
  31. def getTranslatedMessage(mode, message, key):
  32.     if mode[0] == 'd':
  33.         key = -key
  34.     translated = ''
  35.  
  36.     for symbol in message:
  37.         if symbol.isalpha():
  38.             num = ord(symbol)
  39.             num += key
  40.  
  41.             if symbol.isupper():
  42.                 if num > ord('Z'):
  43.                     num -= 26
  44.                 elif num < ord('A'):
  45.                     num += 26
  46.             elif symbol.islower():
  47.                 if num > ord('z'):
  48.                     num -= 26
  49.                 elif num < ord('a'):
  50.                     num += 26
  51.  
  52.             translated += chr(num)
  53.         else:
  54.             translated += symbol
  55.     return translated
  56.  
  57. mode = getMode()
  58. message = getMessage()
  59. if mode[0] != "b":
  60.     key = getKey()
  61.  
  62. print('Your translated text is:')
  63. if mode [0] !="b":
  64.     print(getTranslatedMessage(mode, message, key))
  65. else:
  66.     for key in range (1, MAX_KEY_SIZE +1):
  67.         print (key, getTranslatedMessage ("decrypt", message, key))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement