This repo is an interactive recreation of an enigma machine, the WWII era machine used by Nazi Germany to encode and decode messages.
To run the engima machine, follow this procedure.
- Download this repository to your local machine.
- From the root directory, build and run the repo.
$> yarn start
- Navigate in your browser to http://localhost:3000/
At a high level, an enigma machine would route a letter from the keyboard input through the machine and would illuminate the lightboard with the encoded letter. The secret to the enigma's effectiveness was that the encoding changed after every letter.
The path of a letter as it is routed through the machine is:
- Keyboard input
- Plugboard
- Fast rotor
- Medium rotor
- Slow rotor
- Reflector
- Slow rotor
- Medium rotor
- Fast rotor
- Plugboard
- Lightboard
For a detailed breakdown of how an engima machine worked, watch this video.
- General
- Add button to reset machine configuration
- Save / load configuration using local state
- Rotors
- Allow user to change rotors
- Plugboard
- Allow users to remove letter mappings