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.
Type Name Latest commit message Commit time
Failed to load latest commit information.
enigma.js Providing compatibility between Node.js and browsers. Jul 7, 2016


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


You can’t perform that action at this time.