crack_ceaser_cipher.py
# Import colorama for colorful text. from colorama import Fore, init init() # Define a function for Caesar cipher encryption. def implement_caesar_cipher(text, key, decrypt=False): # Initialize an empty string to store the result. result = "" # Iterate through each character in the input text. for char in text: # Check if the character is alphabetical. if char.isalpha(): # Determine the shift value using the provided key (or its negation for decryption). shift = key if not decrypt else -key # Check if the character is lowercase if char.islower(): # Apply the Caesar cipher encryption/decryption formula for lowercase letters. result += chr(((ord(char) - ord('a') + shift) % 26) + ord('a')) else: # Apply the Caesar cipher encryption/decryption formula for uppercase letters. result += chr(((ord(char) - ord('A') + shift) % 26) + ord('A')) else: # If the character is not alphabetical, keep it as is e.g. numbers, punctuation result += char # Return the result, which is the encrypted or decrypted text return result # Define a function for cracking the Caesar cipher. def crack_caesar_cipher(ciphertext): # Iterate through all possible keys (0 to 25) as there 26 alphabets. for key in range(26): # Call the caesar_cipher function with the current key to decrypt the text. decrypted_text = implement_caesar_cipher(ciphertext, key, decrypt=True) # Print the result, showing the decrypted text for each key print(f"{Fore.RED}Key {key}: {decrypted_text}") # Initiate a continuous loop so the program keeps running. while True: # Accept user input. encrypted_text = input(f"{Fore.GREEN}[?] Please Enter the text/message to decrypt: ") # Check if user does not specify anything. if not encrypted_text: print(f"{Fore.RED}[-] Please specify the text to decrypt.") else: crack_caesar_cipher(encrypted_text)