CAESAR'S CIPHER For Python
CAESAR'S CIPHER For Python
- Code:
#!/usr/bin/env python
# Usage: python cipher.py
import sys
#print(sys.version_info)
# It should say major=3, minor=5
# if you get error use quotes like Enter your message : "testing"
# or try python3 file.py
# ---------- PROBLEM : CAESAR'S CIPHER ----------
# Receive a message and then encrypt it by shifting the
# characters by a requested amount to the right
# A becomes D, B becomes E for example
# Also decrypt the message back again
# A-Z have the numbers 65-90 in unicode
# a-z have the numbers 97-122
# You get the unicode of a character with ord(yourLetter)
# You convert from unicode to character with chr(yourNumber)
# You should check if a character is a letter and if not
# leave it as its default
# Hints
# Use isupper() to decided which unicodes to work with
# Add the key (number of characters to shift) and if
# bigger or smaller then the unicode for A, Z, a, or z
# increase or decrease by 26
# Receive the message to encrypt and the number of characters to shift
message = raw_input("Enter your message : ")
key = int(input("How many characters should we shift (1 - 26)"))
# Prepare your secret message
secret_message = ""
# Cycle through each character in the message
for char in message:
# If it isn't a letter then keep it as it is in the else below
if char.isalpha():
# Get the character code and add the shift amount
char_code = ord(char)
char_code += key
# If uppercase then compare to uppercase unicodes
if char.isupper():
# If bigger than Z subtract 26
if char_code > ord('Z'):
char_code -= 26
# If smaller than A add 26
elif char_code < ord('A'):
char_code += 26
# Do the same for lowercase characters
else:
if char_code > ord('z'):
char_code -= 26
elif char_code < ord('a'):
char_code += 26
# Convert from code to letter and add to message
secret_message += chr(char_code)
# If not a letter leave the character as is
else:
secret_message += char
print("Encrypted :", secret_message)
# To decrypt the only thing that changes is the sign of the key
key = -key
orig_message = ""
for char in secret_message:
if char.isalpha():
char_code = ord(char)
char_code += key
if char.isupper():
if char_code > ord('Z'):
char_code -= 26
elif char_code < ord('A'):
char_code += 26
else:
if char_code > ord('z'):
char_code -= 26
elif char_code < ord('a'):
char_code += 26
orig_message += chr(char_code)
else:
orig_message += char
print("Decrypted :", orig_message)
Similar topics
» Python Encryption Cipher
» Securing a Python Menu With Python Encrypted Password File
» Python Bootstrap
» ROT13 In Bash On Linux Code Cipher Example
» This command adds Python 3 as an alternative for the python command
» Securing a Python Menu With Python Encrypted Password File
» Python Bootstrap
» ROT13 In Bash On Linux Code Cipher Example
» This command adds Python 3 as an alternative for the python command
Permissions in this forum:
You cannot reply to topics in this forum
|
|