7 个版本
0.1.6 | 2024 年 5 月 22 日 |
---|---|
0.1.5 | 2024 年 5 月 8 日 |
#376 in 密码学
43KB
710 行
Easydes
在 Rust 中轻松使用 DES 加密。
这是一个实现 DES 密码学算法的 Rust 库。
运行
easydes --help
easydes <VERSION>
Encrypt and decrypt with DES.
USAGE:
easydes [OPTIONS] --key <KEY> --infile <INPATH> <-e|-d>
OPTIONS:
-3, --triple_des Encrypt/Decrypt using Triple DES.
-d Decrypt
-e Encrypt
-h, --help Print help information
-i, --iv <IV> Encryption/Decryption IV. Only used in CBC.
--infile <INPATH> Specify the path to the input file.
-k, --key <KEY> Encryption/Decryption key
-m <MODE> Specify the mode. Default is ECB which doesn't require an IV.
[default: ECB] [possible values: ECB, CBC]
--outfile <OUTPATH> Specify the path to the output file.
-v Enable verbose logging
-V, --version Print version information
示例
要加密文件,运行
easydes --key 133457799BBCDFF1 --iv 0000000000000000 -m CBC -e --infile tests/infile.txt --outfile output.enc
要解密此文件,可以运行
easydes --key 133457799BBCDFF1 --iv 0000000000000000 -m CBC -d --infile output.enc --outfile plaintext.txt
三重 DES
要使用三重 DES 加密文件,运行
easydes -3 --key 133457799BBCDFF111111111111111112222222222222222 --iv 1111111111111111 -m CBC -e --infile tests/infile.txt --outfile output.enc
要解密此文件,可以运行
easydes -3 --key 133457799BBCDFF111111111111111112222222222222222 --iv 1111111111111111 -m CBC -d --infile output.enc --outfile clear.txt; cat clear.txt
构建
要使用 cargo 构建二进制文件,运行
cargo build --release
使用库
通过包含
use easydes::easydes::*;
,你可以在自己的库中使用 DES 函数。例如
let plaintext: &str = "HelloWorldHelloWorld";
let key: [u8; 8] = [0x13, 0x34, 0x57, 0x79, 0x9B, 0xBC, 0xDF, 0xF1];
let iv: [u8; 8] = [0x01 as u8; 8];
let mut ciphertext = easydes::des_cbc(
&key,
&iv,
&mut plaintext.as_bytes().to_vec(),
easydes::Des::Encrypt,
);
println!("{:#02x?}", ciphertext);
let mut plaintext_again: Vec<u8> =
easydes::des_cbc(&key, &iv, &mut ciphertext, easydes::Des::Decrypt);
测试
请参阅 TESTING.md。
许可证
请阅读 LICENSE.md。
依赖项
~1.5MB
~25K SLoC