Permalink
Browse files

Adding caesarCipher2.py

  • Loading branch information...
1 parent 098f6ee commit 5170026bef81c71367efb80bdc8df66cf46e4e51 @asweigart committed Feb 27, 2013
Showing with 52 additions and 0 deletions.
  1. +52 −0 caesarCipher2.py
View
@@ -0,0 +1,52 @@
+# Caesar Cipher
+# http://inventwithpython.com/hacking (BSD Licensed)
+
+import pyperclip
+
+# the string to be encrypted/decrypted
+message = 'This is my secret message.'
+
+# the encryption/decryption key
+key = 13
+
+# tells the program to encrypt of decrypt
+mode = 'encrypt' # set to 'encrypt' or 'decrypt'
+
+# every possible symbol that can be encrypted
+LETTERS = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
+
+# stores the encrypted/decrypted form of the message
+translated = ''
+
+# capitalize the string in message
+#message = message.upper()
+
+# run the encryption/decryption code on each symbol in the message string
+for symbol in message:
+ if symbol in LETTERS:
+ # get the encrypted (or decrypted) number for this symbol
+ num = LETTERS.find(symbol) # get the number of the symbol
+ if mode == 'encrypt':
+ num = num + key
+ elif mode == 'decrypt':
+ num = num - key
+
+ # handle the wrap around if num is larger than the length of
+ # LETTERS or less than 0
+ if num >= len(LETTERS):
+ num = num - len(LETTERS)
+ elif num < 0:
+ num = num + len(LETTERS)
+
+ # add encrypted/decrypted number's symbol at the end of translated
+ translated = translated + LETTERS[num]
+
+ else:
+ # just add the symbol without encrypting/decrypting
+ translated = translated + symbol
+
+# print the encrypted/decrypted string to the screen
+print(translated)
+
+# copy the encrypted/decrypted string to the clipboard
+pyperclip.copy(translated)

0 comments on commit 5170026

Please sign in to comment.