https://github.com/jnbreid/enigma_cpp
A C++ simulation of the Enigma cipher machine, integrated with Python via Pybind11.
https://github.com/jnbreid/enigma_cpp
cplusplus cpp enigma-machine pybind11 python
Last synced: about 2 months ago
JSON representation
A C++ simulation of the Enigma cipher machine, integrated with Python via Pybind11.
- Host: GitHub
- URL: https://github.com/jnbreid/enigma_cpp
- Owner: jnbreid
- License: mit
- Created: 2025-06-10T14:31:18.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-29T22:09:27.000Z (about 1 year ago)
- Last Synced: 2025-07-07T00:11:29.470Z (about 1 year ago)
- Topics: cplusplus, cpp, enigma-machine, pybind11, python
- Language: C++
- Homepage:
- Size: 60.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Enigma Simulator
A C++ implementation of the Enigma cipher machine, integrated with Python via [Pybind11](https://github.com/pybind/pybind11).
Unlike the original, this version supports **fully customizable rotors, reflectors, and plugboards**, allowing for alphabets larger than the traditional 26 letters — including extended symbol sets such as all printable ASCII characters (as demonstrated in the demo notebook).
## Features
- Fully customizable rotors, reflectors, and plugboards
Supports arbitrary character sets, including all printable ASCII characters.
- Python integration via Pybind11
Enables interactive use from Python scripts or Jupyter notebooks.
- Interactive demo notebook
Demonstrates encryption, configuration, and extended alphabet usage.
## Installation
Make sure you have CMake and Pybind11 installed. Then, build the module by running:
```bash
mkdir build && cd build
cmake ..
make
```
## Demo
Check out [*demo.ipynb*](demo.ipynb) for an interactive walkthrough and showcase of functionalities.
## License
This project is licensed under a [GPL-3.0 license](LICENSE).