4 个版本
0.1.4 | 2021 年 12 月 29 日 |
---|---|
0.1.3 | 2021 年 12 月 29 日 |
0.1.1 | 2021 年 12 月 28 日 |
0.1.0 | 2021 年 12 月 28 日 |
#1329 in 密码学
15KB
246 行
tc_tea
Rust 语言实现 腾讯修改的 TEA(tc_tea)。
使用其 C++ 实现生成的测试数据:tc_tea.cpp(BSD-3-Clause)。
根据 iweizime/StepChanger:腾讯 TEA 加密算法 中描述的规范实现代码。
功能
secure_random
(默认:开启
):在为 tc_tea 生成填充字节时启用安全 RNG。
安装
将以下内容添加到 [dependencies]
部分中您的 Cargo.toml
文件
tc_tea = "0.1.4"
故障排除
- 密钥需要至少
16
字节。- 如果提供的字节少于
16
字节,将返回None
。 - 如果提供了更多字节,则仅使用前 16 字节。
- 如果提供的字节少于
- 加密数据的大小应该是 8 的倍数。
- 如果
encrypted_data.len() % 8 > 0
,将返回None
。
- 如果
用法
use tc_tea;
fn hello_tc_tea() {
let key = "12345678ABCDEFGH";
let encrypted = tc_tea::encrypt(&"hello", &key).unwrap();
let decrypted = tc_tea::decrypt(&encrypted, &key).unwrap();
assert_eq!("hello", std::str::from_utf8(&decrypted).unwrap());
}
许可证
双重许可,MIT 或 Apache-2.0 许可证。
SPDX-License-Identifier: MIT OR Apache-2.0
依赖项
~1.3–2.1MB
~39K SLoC