Skip to content

atsushi130/EnigmaMachine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enigma Machine

MIT licensed crates.io

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages