3个版本
使用旧的Rust 2015
0.1.2 | 2017年5月21日 |
---|---|
0.1.1 | 2017年5月21日 |
0.1.0 | 2017年5月20日 |
在 #enigma 中排名 #8
14KB
298 行
Enigma Machine
此包是针对各种字符字符串的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