Enigma
C++ Implementation of the Enigma Machine
Install / Use
/learn @MTaggart97/EnigmaREADME
Enigma
This is my attempt at creating the Enigma Machine used by the Germans in WW2 to encrypt messages.
Rotor configurations can be found here.
A nice simulator can be found here.
Goals
- To become more familiar with the C++ Programming Language
- Stick to a TDD lifecycle
- Learn how to use CMake
- Create an Enigma Machine
The following are nice to haves but are not the main goals of this project
- See how this can be turned into a unix command line tool to encrypt files (like
openssl) - Try to break the Enigma Code
Features
- [x] Interact through a command line interface
- [x] Can input either files or type message
- [x] Output to a file or terminal
- [ ] ~~Machine should be configurable using JSON (or some other structured file format)~~
- [x] Configure using command line
- [x] Inputting encrypted text into a machine with the same configuration should result in the plain text being returned
Usage
./build/Enigma -f test.txt -d encrypted.txt
./build/Enigma -f test.txt
./build/Enigma hello
./build/Enigma "hello there" # Use quotes for more than one word
./build/Enigma -r1 2 -r2 4 -relf A "hello there"
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR
