This is a command-line tool for text encryption and decryption using various algorithms. It supports multiple encryption algorithms, including Caesar cipher, ROT13, Atbash cipher, and a custom crot13
algorithm. You can use this tool to secure your text-based information or decode encrypted messages.
-
Caesar Cipher:
- The Caesar cipher is a simple substitution cipher where each letter in the plaintext is shifted a fixed number of places down or up the alphabet.
- For example, with a shift of 3, 'A' becomes 'D', 'B' becomes 'E', and so on.
- In the script, the
caesar_cipher
function takes a text input and a shift value as parameters and returns the encrypted text.
-
ROT13 Cipher:
- ROT13 is a special case of the Caesar cipher with a fixed shift of 13 places.
- It's often used for obscuring text in online forums or for creating puzzles.
- In the script, the
rot13_cipher
function uses thecodecs.encode
function with 'rot_13' encoding to perform ROT13 encryption.
-
Atbash Cipher:
- The Atbash cipher is a substitution cipher where each letter in the plaintext is replaced with its corresponding letter in the reverse alphabet.
- For example, 'A' becomes 'Z', 'B' becomes 'Y', and so on.
- In the script, the
atbash_cipher
function takes a text input and returns the encrypted text.
-
Custom crot13 Algorithm:
- The
crot13
algorithm combines Caesar and ROT13 ciphers for encryption and decryption. When encrypting, it first applies the Caesar cipher with the specified shift value and then applies ROT13. When decrypting, it reverses the process: it first applies ROT13 and then applies the Caesar cipher with a negated shift value.
- The
These algorithms are used for different purposes and have varying levels of security. Caesar and ROT13 ciphers are very simple and offer minimal security, while the Atbash cipher provides a bit more complexity. However, it's important to note that none of these ciphers are considered secure for modern cryptography. They are mainly used for educational and recreational purposes. For secure text encryption, it's recommended to use strong encryption algorithms like AES (Advanced Encryption Standard) provided by cryptographic libraries.
-
Secure Messaging: You can use this tool to encrypt sensitive text messages before sending them, ensuring that only authorized recipients can decrypt and read the messages.
-
Obfuscation: The ROT13 and Atbash ciphers are often used to obfuscate text for various purposes, such as hiding spoilers or creating puzzles.
-
Learning Cryptography: This tool is a practical way to learn about classic encryption algorithms like the Caesar cipher and ROT13.
The FastAPI Caesar Cipher API is a simple web API that provides text transformation operations using using the ciphers listed above. Additionally, it offers the ability to perform these transformations on text files and save the results to the server's "files" directory which is then served as static files made available for download.
The frontend was developed using react
To install and use the Text Encryption Command-Line Tool, follow these steps:
-
Clone the repository to your local machine:
git clone https://github.com/hardope/caesar
-
Navigate to the project directory:
cd caesar
-
Run the provided installation script to set up the environment, install dependencies, and make the command-line tool available:
chmod +x install ./install
The script will take care of installing Python 3, pip
, Python 3 venv
, creating a virtual environment, installing the required packages from requirements.txt
, and building and installing the command-line tool. It will also clean up temporary files and deactivate and delete the virtual environment when done.
The command-line tool provides several options to customize the encryption or decryption process:
-
--help
: Display help and usage info on command line -
--file
: Input file to read text from. -
--text
: Text to encrypt or decrypt. -
--shift
: Shift value for Caesar cipher (default: 3). -
--decrypt
: Flag to indicate decryption (default is encryption). -
--output
: Output file to write the result to. -
--algorithm
: Encryption algorithm to use (default: Caesar cipher). Supported options are 'caesar', 'rot13', 'atbash', and 'crot13'. -
--uninstall
: Uninstall caesar cypher
The check the installed version of caesar you have installed
caesar --version
python text_encryptor.py --text "Hello, World!" --shift 3
python text_encryptor.py --text "Uryyb, Jbeyq!" --algorithm rot13 --decrypt
python text_encryptor.py --text "Hello, World!" --algorithm crot13 --shift 3
python text_encryptor.py --file encrypted.txt --output decrypted.txt --algorithm rot13 --decrypt
python text_encryptor.py --file input.txt --algorithm atbash
python text_encryptor.py --file input.txt --algorithm crot13 --shift 3
python text_encryptor.py --file encrypted.txt --algorithm crot13 --decrypt --shift 3
python text_encryptor.py --file input.txt --output encrypted.txt --shift 5
python text_encryptor.py --file encrypted.txt --output decrypted.txt --algorithm rot13 --decrypt
python text_encryptor.py --file input.txt --algorithm atbash
python text_encryptor.py --file input.txt --algorithm crot13 --shift 3
python text_encryptor.py --file encrypted.txt --algorithm crot13 --decrypt --shift 3
These examples demonstrate how to use the Text Encryption Command-Line Tool with file inputs and outputs, allowing you to perform encryption and decryption on text stored in files.
To run the FastAPI application locally, follow these steps:
- Clone the repository
git clone https://github.com/hardope/caesar
- Navigate to the project directory
cd caesar
- Create a virtual environment
python3 -m venv venv
- Activate virtual environment
source venv/bin/activate
- Install the required dependencies using pip
pip install -r requirements.txt
- Start the web server
uvicorn app:app