Skip to content
Enigma machine simulator in JavaScript for didactic purposes.
JavaScript HTML CSS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md
enigma.html
enigma.js Providing compatibility between Node.js and browsers. Jul 7, 2016
main.css
test_enigma.js

README.md

enigma-machine

Enigma machine simulator in JavaScript for didactic purposes.


As part of my #100DaysOfCode initiative, I developed an Enigma machine simulator from the ground up. For about three weeks, I’ve studied the machine technical details, wrote the simulator code in JavaScript and Node.js using a Test-Driven Development approach, created a web interface, and documented the steps in blog articles.

This is a simulator for the Enigma machine, one of the most incredible applications of cryptography during World War I and II. German militaries would send encrypted messages through the air using telegraphs about bombing locations with security, considering one would have to know the precise combination of rotor positioning, plugboard configuration, and other pieces in order to decode captured messages.

Even though several weaknesses were discovered - specially by the Allies forces - allowing one to break the code, the Enigma encryption algorithm is a fun way to study a little bit of cryptography.

Of course, studying the Enigma is also a tribute to Alan Turing.

Web interface

http://matheusportela.com/enigma/

References

You can’t perform that action at this time.