A Java console application to encrypt and decrypt text using classical cipher algorithms.
Enigmify lets you securely encode and decode sensitive text using two of the most well-known classical cryptography techniques — Caesar Cipher and Vigenère Cipher. All operations are logged persistently so you can track your encryption history anytime.
- 🔒 Caesar Cipher — Encrypt & decrypt using a numeric shift key
- 🔑 Vigenère Cipher — Encrypt & decrypt using an alphabetic keyword
- 📜 Operation History — Every operation is saved to
history.txt - 🗑️ Clear History — Wipe all logs with a single option
- 💡 Handles spaces & symbols — Non-letter characters are preserved as-is
- Java JDK 8 or above installed
- Any terminal / command prompt
# 1. Clone the repository
git clone https://github.com/SamarjeetRay/Enigmify.git
# 2. Navigate into the folder
cd Enigmify
# 3. Compile all Java files
javac *.java
# 4. Run the program
java Main==========================================
ENIGMIFY - by Samarjeet
Encrypt & Decrypt with Classical Ciphers
==========================================
===== MENU =====
1. Caesar Cipher - Encrypt
2. Caesar Cipher - Decrypt
3. Vigenere Cipher - Encrypt
4. Vigenere Cipher - Decrypt
5. View History
6. Clear History
0. Exit
Enter choice: 1
Enter text to encrypt: HELLO
Enter shift key (number): 3
Encrypted: KHOOR
Each letter is shifted forward by a fixed number (the key).
Text: H E L L O
Shift: 3 3 3 3 3
Output: K H O O R
To decrypt — shift back by the same number.
Each letter is shifted by a different amount based on a repeating keyword.
Text: H E L L O
Key: K E Y K E (KEY repeats)
Output: R I J V S
To decrypt — reverse the keyword shifts.
Enigmify/
├── Main.java # Menu-driven entry point
├── CaesarCipher.java # Caesar encrypt/decrypt logic
├── VigenereCipher.java # Vigenere encrypt/decrypt logic
├── HistoryManager.java # Save/load/clear history.txt
└── README.md # Project documentation
| Technology | Usage |
|---|---|
| Java | Core programming language |
| BufferedReader / BufferedWriter | File I/O for history logging |
| StringBuilder | Efficient string manipulation |
| Scanner | Console input handling |
This project is open source and available under the MIT License.