This project implements the Enigma machine in Elm. This project is part of the course Functional Frontend Development at the Flensburg University of Applied Sciences.
- The project is also available under the following link: https://simonhauck.github.io/Enigma-Elm/. The server functionality might not be available with this link!
- Checkout Project
- Build index file:
elm make src/Main.elm
- Open Index File
This Enigma offers the following options:
- Select different rotors
- Specify the rotor and ring position
- Specify the reflector
- Specify the plugboard
- Generate a Random key
- Offer an Option to include or ignore foreign chars.
- The complete substitution process can be displayed in an Svg element
- Select different encryption/decryption Speeds
- Single Step Encryption/Decryption
- Instant Encryption/Decryption
- Automatic interval that can be modified with a slider
- The result can be sent to a server. Other users can see your message and decrypt it with the correct key
- First you need an Input. Set the input text into the textarea with the headline 'Text Input'
- For Encryption this is your message.
- For Decryption this is the encrypted message
- Set the key.
- For Encryption: Generate a random key with the 'Generate Random Key' button or set the values manually
- For Decryption: Set the Key that was used for the Encryption. If you don't know the key, you can't decrypt the message
- Switch from the Configuration mode to the Encryption mode by clicking on the Button 'Switch to Encryption Mode'
- Encrypt/Decrypt the message
- You can enable the automatic encryption. You can set the speed with the slider above. The automatic encryption will encrypt every x milliseconds a character.
- You can click the 'Single Step' button. Every time you press this button a character will be encrypted/decrypted
- You can click the 'Instant Encryption' button. This will encrypt/decrypt the complete input text.
- The Functionality of the Enigma is described here: https://github.com/stephl001/EnigmaMachine
- The Rotor and Reflector Specification can be found here: https://github.com/stephl001/EnigmaMachine/wiki/Rotors-Specifications
Background Image: https://wallhere.com/en/wallpaper/980234