2 个版本

0.5.2 2023 年 4 月 26 日
0.5.1 2022 年 1 月 13 日

#1502 in 密码学

Download history 1087/week @ 2024-03-14 998/week @ 2024-03-21 737/week @ 2024-03-28 1342/week @ 2024-04-04 423/week @ 2024-04-11 321/week @ 2024-04-18 528/week @ 2024-04-25 833/week @ 2024-05-02 301/week @ 2024-05-09 280/week @ 2024-05-16 456/week @ 2024-05-23 413/week @ 2024-05-30 368/week @ 2024-06-06 684/week @ 2024-06-13 579/week @ 2024-06-20 912/week @ 2024-06-27

2,715 次每月下载
2 个 crate 中使用 (通过 cloudproof_fpe)

MIT/Apache

51KB
1K SLoC

fpe Crates.io

此 crate 包含格式保持加密算法的纯 Rust 实现。

实现了以下算法:

此 crate 需要 Rust 版本 1.56 或更高版本。

许可证

根据以下任一许可证授权:

任选其一。

贡献

除非您明确表示,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证定义,应双重许可如上所述,不附加任何额外条款或条件。


lib.rs:

格式保持加密算法。

示例

extern crate aes;
extern crate fpe;

use aes::Aes256;
use fpe::ff1::{BinaryNumeralString, FF1};

let key = [0; 32];
let radix = 2;
let pt = [0xab, 0xcd, 0xef];

let ff = FF1::<Aes256>::new(&key, radix).unwrap();
let ct = ff.encrypt(&[], &BinaryNumeralString::from_bytes_le(&pt)).unwrap();
assert_eq!(ct.to_bytes_le(), [0x75, 0xfb, 0x62]);

let p2 = ff.decrypt(&[], &ct).unwrap();
assert_eq!(p2.to_bytes_le(), pt);

依赖项

~1MB
~20K SLoC