What will we cover?
We will implement the Caesar Cipher in Python using functions and a few things.
For futter preparation than given in this tutorial you can watch this video tutorial.
Step 1: Describing Caesar Cipher
- The Caesar Cipher is a simple substitution cipher, which is limited to only shift the characters by fixed number.
- Let’s take an example
- Imagine you got the message: BRX DUH DZHVRPH. What to make out of it. Makes no sense.
- But what if we get help from this diagram
Step 2: Implement the encryption function
Let’s implement a helper function encrypt_char(char, key) to encrypt a single character, char, with key.
def encrypt_char(char, key): return chr(ord('A') + (ord(char) - ord('A') + key) % 26)
Then we can implement encrypt_message(message, key), which uses the helper function.
def encrypt_message(message, key): message = message.upper() cipher = '' for char in message: if char not in ' ,.': cipher += encrypt_char(char, key) else: cipher += char return cipher
Let’s try it.
encrypt_message("you are awesome.", 3)
Which results in BRX DUH DZHVRPH.
Step 3: Implement the decryption function
This is quite similar.
def decrypt_char(char, key): return chr(ord('A') + (ord(char) - ord('A') + 26 - key) % 26) def decrypt_message(cipher, key): cipher = cipher.upper() message = '' for char in cipher: if char not in ' ,.': message += decrypt_char(char, key) else: message += char return message
Let’s try it.
decrypt_message('BRX DUH DZHVRPH.', 3)
Then you get YOU ARE AWESOME.
I am happy you asked.
If this is something you like and you want to get started with Python, then this is part of a 8 hours FREE video course with full explanations, projects on each levels, and guided solutions.
The course is structured with the following resources to improve your learning experience.
- 17 video lessons teaching you everything you need to know to get started with Python.
- 34 Jupyter Notebooks with lesson code and projects.
- A FREE 70+ pages eBook with all the learnings from the lessons.
See the full FREE course page here.