#enigma #decryption #encryption

bin+lib enigma_machine

此包是针对各种字符字符串的Enigma Machine。

3个版本

使用旧的Rust 2015

0.1.2 2017年5月21日
0.1.1 2017年5月21日
0.1.0 2017年5月20日

#enigma 中排名 #8

MIT 许可证

14KB
298

Enigma Machine

MIT licensed crates.io

此包是针对各种字符字符串的Enigma Machine。

依赖项

将其插入到项目的Cargo.toml中。

[dependencies]
enigma_machine = "0.1.0"

 cargo add encrypter

用法

导入

extern crate enigma_machine;

use enigma_machine::{ Enigma, Router, Reflector, Plugboard, SubstitutionTable };
use enigma_machine::{ SUBSTITUTION_TABLE1, SUBSTITUTION_TABLE2, SUBSTITUTION_TABLE3, REFLECTOR, PLUGBOARD };

设置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()))
);

设置路由器位置。

let positions = "ABC";
enigma.set_positions(positions);

加密和解密。

let encrypted = enigma.encrypt(&string);
let decrypted = enigma.decrypt(&encrypted);

许可证

MIT

依赖项

~390KB