This crate is Enigma Machine corresponding to various character strings.
Insert to Cargo.toml of your project.
[dependencies]
enigma_machine = "0.1.0"
or
❯ cargo add encrypter
import
extern crate enigma_machine;
use enigma_machine::{ Enigma, Router, Reflector, Plugboard, SubstitutionTable };
use enigma_machine::{ SUBSTITUTION_TABLE1, SUBSTITUTION_TABLE2, SUBSTITUTION_TABLE3, REFLECTOR, PLUGBOARD };
setup enigma
let mut enimga = Enigma::new(
vec![
Router::new(SubstitutionTable::new(SUBSTITUTION_TABLE1.to_vec())),
Router::new(SubstitutionTable::new(SUBSTITUTION_TABLE2.to_vec())),
Router::new(SubstitutionTable::new(SUBSTITUTION_TABLE3.to_vec())),
],
Plugboard::new(SubstitutionTable::new(PLUGBOARD.to_vec())),
Reflector::new(SubstitutionTable::new(REFLECTOR.to_vec()))
);
set routers position.
let positions = "ABC";
enigma.set_positions(positions);
encrypt and decrypt.
let encrypted = enigma.encrypt(&string);
let decrypted = enigma.decrypt(&encrypted);
MIT