#解密 #加密 #base64 #恩尼格玛

程序+库 cryptor

Cryptor 是对应多种算法的加密机

4 个版本

使用旧的 Rust 2015

0.1.3 2017 年 5 月 25 日
0.1.2 2017 年 5 月 24 日
0.1.1 2017 年 5 月 21 日
0.1.0 2017 年 5 月 21 日

#1713 in 密码学

MIT/Apache

25KB
396

Cryptor

MIT / Apache2.0 dual licensed Travis Build Status crates.io Document

Cryptor 是对应多种算法的加密机。

依赖项

将其插入您项目的 Cargo.toml 文件。

[dependencies]
cryptor = "0.1.3"

// Newest version
 cargo add cryptor

// Version specification
 cargo add [email protected]

// If not exist on crates.io
 mkdir lib
 cd lib
 git clone https://github.com/atsushi130/Cryptor
 cd ..
 cargo add cryptor --path=lib/cryptor/

默认加密算法

  • Enigma
  • Base64

用法

导入模块

extern crate cryptor;
use cryptor::cryptor::{ Cryptor, CryptoValue, Algorithm };

使用此 Algorithm trait 实现 struct。

pub trait Algorithm {
    type V: Algorithm;
    fn encrypt(&mut self, character: &char) -> CryptoValue<Self::V>;
    fn decrypt(&mut self, character: &char) -> CryptoValue<Self::V>;
}

Cryptor 有 Algorithm trait 成员。将您实现的 struct 注入到 Cryptor。

let mut cryptor = Cryptor::new(YourAlgorithm);

加密和解密方法的返回类型是 CryptoValue<YourAlgorithm>

let encrypted: CryptoValue<YourAlgorithm> = cryptor.encrypt(&string);
println!("encrypted string is {}", encrypted.text);

let decrypted: CryptoValue<YourAlgorithm> = cryptor.decrypt(&string);
println!("decrypted string is {}", decrypted.text);

运行

 cargo build
 cargo run

测试

 cargo test

变更日志

v0.1.3
定义了构建新 Cryptor 的关联函数。

impl<T: Algorithm> Cryptor<T> {
    pub fn new(algorithm: T) -> Self {
        Cryptor {
            algorithm
        }
    }
}

更改了用法

let mut cryptor = Cryptor::new(your_algorithm);

许可

本项目受 MIT 和 Apache 2.0 许可协议的双重许可。

依赖项

~390KB