A collection of Python scripts to expedite solving ciphers, developed for the National Cipher Challenge 2025.
- Modular design: each cipher has its own Python module.
- Consistent interface: each module contains a
solve()function. - PEP8-compliant code, optionally Flake8-aligned.
- Pytest coverage for all completed ciphers.
- Clone the repository:
git clone http://github.com/willemvancrgs/enigmax-codebreakers
cd enigmax-codebreakers - Install dependencies:
pip install -r requirements.txt
Each cipher module exposes a solve() function that takes the ciphertext and any required additional parameters. Example:
from ciphers.affine import solve
ciphertext = "GIEWIV GMTLIV HIQS"
plaintext = solve(ciphertext, 5, 8)
print(plaintext)- Affine cipher
- Amasco cipher
- Baconian cipher
- Beaufort cipher
- Monoalphabetic cipher
- Polybias cipher
- Rail fence / Redefence cipher
- Scripts should be in Python unless otherwise decided
- Work on changes in a seperate branch before merging
- Ensure each cipher is:
- PEP8-compliant
- Includes pytests
- Implements the base cipher class
- Has decode and CLI functions
- Optionally Flake8-aligned
- Fix file structure
- Make autosolvers for all existing ciphers
- Full CLI
- More ciphers
- Sam | Playfair cipher and double playfair
- Daniel | Vertical two square
- Samarth | Horizontal two square
- Frazer | ADFGVX cipher
- Leo | Nihilist substitution cipher
- Willem | Bifid cipher
- Tejas | Trifid cipher
- Ibrahim | Four squares cipher