3 releases
Uses old Rust 2015
0.1.2 | May 21, 2017 |
---|---|
0.1.1 | May 21, 2017 |
0.1.0 | May 20, 2017 |
#10 in #enigma
14KB
298 lines
Enigma Machine
This crate is Enigma Machine corresponding to various character strings.
Dependencies
Insert to Cargo.toml of your project.
[dependencies]
enigma_machine = "0.1.0"
or
❯ cargo add encrypter
Usage
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);
License
MIT
Dependencies
~385KB