2 个稳定版本
1.0.1 | 2021 年 11 月 23 日 |
---|---|
1.0.0 | 2021 年 11 月 17 日 |
#2029 在 算法 中
14KB
134 行
libpermute
libpermute 是一个 no_std
兼容的库,提供对切片项进行排列的函数。
libpermute 提供以下主要功能
-
稳定性。排列算法不会在不进行重大版本升级的情况下更改。
-
可重实现性。在另一个库或另一种语言中重新实现该库使用的算法应该是相对直接的。
-
强度。给定一个不可预测的排列密钥,排列也应该是不可预测的 - 假设没有人会破解 Sha-256 或 ChaChar20 算法。
示例
use libpermute::permute;
fn main() {
const KEY: &'static [u8] = &[0, 1, 2, 3, 4, 5, 6, 7];
const INPUT: &str = "Hello World!";
let mut buff = [0u8; INPUT.len()];
buff.copy_from_slice(INPUT.as_bytes());
permute(KEY, &mut buff);
println!("RESULT: '{}'", std::str::from_utf8(&buff).unwrap());
}
No_std
可以通过禁用 "std" 功能来激活 No_std 模式。
许可协议
该项目根据您的选择许可
- Apache 许可证 2.0 版本,(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
。
依赖关系
~685KB
~14K SLoC