Classical-Crypto-CLI-Toolkit is a Python-based command-line tool for experimenting with classical ciphers and cryptanalysis.
It is designed for students, security enthusiasts, and developers who want to learn or demonstrate classical encryption techniques in a terminal environment.
All operations are local, ensuring full offline use and privacy.
For beginners or users who prefer a graphical interface:
π A future GUI version could provide the same core features with an easy-to-use desktop interface.
Work in progress
- Learning-focused β ideal for beginners exploring cryptography
- CLI-centric β intuitive, alias-supported commands
- Modular architecture β separates cipher logic from CLI interface
This toolkit is educational, yet fully functional, with each cipher and attack independently usable.
- Caesar Cipher (
caesar,c) β shift-based substitution - Playfair Cipher (
playfair,pf) β digraph-based substitution - Rail Fence Cipher (
rail_fence,rf,rail) β transposition cipher - Row Column Cipher (
row_column,rc,row) β columnar transposition
- Caesar Brute Force (
attack c,atk c) β tries all possible shifts - Rail Fence Brute Force (
attack rf,atk rf) β tries multiple rail numbers
classical-crypto-cli-toolkit/
β
βββ core/
β βββ __init__.py
β βββ utils.py
β βββ ciphers/
β β βββ __init__.py
β β βββ caesar.py
β β βββ rail_fence.py
β β βββ row_column.py
β β βββ playfair.py
β βββ attacks/
β βββ __init__.py
β βββ caesar_brute.py
β βββ rail_fence_brute.py
β
βββ cli/
β βββ __init__.py
β βββ parser.py
β βββ controller.py
β
βββ main.py
βββ requirements.txt
βββ LICENSE
βββ README.mdβ Core logic and CLI interface are strictly separated for maintainability and learning.
git clone https://github.com/ShakalBhau0001/classical-crypto-cli-toolkit.git
cd classical-crypto-cli-toolkitpip install -r requirements.txtpython main.py --helpSyntax
python main.py <cipher> [options] python main.py <attack> [options]
Encrypt
python main.py caesar -e "HELLO WORLD" -s 3
python main.py c -e "HELLO WORLD" -s 3Decrypt
python main.py caesar -d "KHOOR ZRUOG" -s 3
python main.py c -d "KHOOR ZRUOG" -s 3Encrypt
python main.py playfair -e "HELLO WORLD" -k KEYWORD
python main.py pf -e "HELLO WORLD" -k KEYWORDDecrypt
python main.py playfair -d "GYIZSCOKCFBU" -k KEYWORD
python main.py pf -d "GYIZSCOKCFBU" -k KEYWORDEncrypt
python main.py rail_fence -e "HELLO WORLD" -r 3
python main.py rf -e "HELLO WORLD" -r 3
python main.py rail -e "HELLO WORLD" -r 3Decrypt
python main.py rail_fence -d "HOLELWRDLO" -r 3
python main.py rf -d "HOLELWRDLO" -r 3
python main.py rail -d "HOLELWRDLO" -r 3Encrypt
python main.py row_column -e "HELLO WORLD" -k KEYWORD
python main.py rc -e "HELLO WORLD" -k KEYWORD
python main.py row -e "HELLO WORLD" -k KEYWORDDecrypt
python main.py row_column -d "OXELHROXWXLXLD" -k KEYWORD
python main.py rc -d "OXELHROXWXLXLD" -k KEYWORD
python main.py row -d "OXELHROXWXLXLD" -k KEYWORDCaesar Brute Force
python main.py attack c "KHOOR ZRUOG"
python main.py atk c "KHOOR ZRUOG"Rail Fence Brute Force
python main.py attack rf "HOLELWRDLO" --max-rails 10
python main.py atk rf "HOLELWRDLO" --max-rails 10Global help
python main.py --helpModule-specific help
python main.py caesar --help
python main.py playfair --help
python main.py rail_fence --help
python main.py row_column --help
python main.py attack --help- Modules and attacks are not flags
- Module name must come immediately after
main.py - Flags are case-sensitive
- Short and long flags both supported
- Encrypt = input β output
- Decrypt = output β original input
cryptographyThis toolkit is educational and research-focused.
It uses classical ciphers and is not suitable for modern secure communication.
Handle sensitive data with caution.
- Add GUI version for beginners
- Batch processing support
- Linux & macOS packaging
- PyInstaller standalone binaries
Developer: Shakal Bhau
GitHub: ShakalBhau0001
βClassical ciphers teach discipline before modern encryption.β