3 releases
new 0.1.2 | Jan 26, 2025 |
---|---|
0.1.1 | Jan 22, 2025 |
0.1.0 | Jan 22, 2025 |
#1666 in Cryptography
208 downloads per month
21KB
248 lines
TOTP-RS
中文
基于 RFC 6238 标准的 Rust TOTP(基于时间的一次性密码)算法实现,支持多种哈希算法,包括 SHA1、SHA256、SHA512 和国密 SM3。
特性
- 支持多种哈希算法(SHA1、SHA256、SHA512、SM3)
- 可配置验证码长度(6 位或 8 位)
- 可自定义时间步长
- 支持时区偏移
- 支持国际化
- 符合 RFC 6238 标准
安装
在 Cargo.toml
中添加:
[dependencies]
totp-sm-rs = "0.1.1"
使用方法
use totp_sm_rs::utils::totp::totp::{generate_totp_code, TotpConfig, HashAlgorithm};
// 使用默认配置生成TOTP(SHA1算法,6位验证码)
let secret = "GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ";
let code = generate_totp_code(secret, None).unwrap();
// 使用自定义配置生成TOTP
let config = TotpConfig {
digits: 8,
time_step: 30,
timestamp: Some(1234567890),
timezone_offset: None,
hash_algorithm: HashAlgorithm::SHA256,
};
let code = generate_totp_code(secret, Some(config)).unwrap();
许可证
本项目采用双重许可证 - 你可以选择使用 Apache License 2.0 或 MIT License 中的任意一个。
Dependencies
~7.5MB
~146K SLoC