Enigma simulator in Typescript
npm install enigma-machinebash
$ npm install enigma-machine
`
$3
`js
// CommunJS
const EnigmaMachine = require('enigma-machine');
// Browser
`
Machine creation
$3
`js
const rotor1 = new EnigmaMachine.Rotor(/ RotorConfiguration Object /);
`
$3
`js
const reflector = new EnigmaMachine.Reflector(/ ConnectionMap Object /);
`
$3
`js
const plugboard = new EnigmaMachine.Plugboard(/ ConnectionMap Object /);
`
ā See how to generate a random ConnectionMap
$3
`js
const enigma = new EnigmaMachine.Enigma([rotor1, rotor2, rotor3], reflector, plugboard);
`
$3
`js
const enigma = new EnigmaMachine.Enigma.generateFromEnigmaConfig(/ EnigmaConfiguration Object /);
`
:warning: Rotor list must contain 3 rotors
Message
$3
`js
const myMessage = enigma.calculateString('helloworld');
// Return 'lumquxgpzf' with a config that I lost :D
const mySecondMessage = enigma.calculateString('lumquxgpzf');
// Return 'helloworld' with the same config
`
See test file on GitHub
Generating configurations and ConnectionMaps
$3
`js
const rotorConfiguration = EnigmaMachine.generateRotorConfiguration();
`
:warning: If you are creating manually the RotorConfiguration you can't use the generateConnectionMap method !
$3
`js
// For a Reflector
const reflectorConnectionMap = EnigmaMachine.generateConnectionMap();
// const reflector = new EnigmaMachine.Reflector(reflectorConnectionMap);
// For a Plugboard
const plugboardConnectionMap = EnigmaMachine.generateConnectionMap();
// const plugboard = new EnigmaMachine.Plugboard(plugboardConnectionMap);
`
$3
`js
const enigmaConfig = EnigmaMachine.generateEnigmaConfiguration();
``