2个稳定版本
2.0.0 | 2023年12月26日 |
---|---|
1.0.0 | 2023年12月17日 |
#705 in 身份验证
166 每月下载次数
在 2 个Crate中使用(通过 deepwell)
8KB
80 行
rust-otp
rust-otp
是一个Rust库,用于按照 HMAC基于的一次性密码算法 (RFC 4226)和 基于时间的一次性密码算法 (RFC 6238)执行。这些也是许多基于移动的2FA应用程序(如 Google Authenticator 和 Authy)用来生成2FA代码的算法。
安装
只需将库作为依赖项添加到您的 Cargo.toml
文件中。
[dependencies.otp]
git = "https://github.com/WesleyBatista/rust-otp"
用法
// first argument is the secret, second argument is the counter
println!("HOTP: {:?}", otp::make_hotp("base32secret3232".to_ascii_uppercase().as_str(), 0).unwrap());
assert_eq!(otp::make_hotp(&"base32secret3232".to_ascii_uppercase(), 0).unwrap(), 260182);
// first argument is the secret, followed by the time step in seconds (Google
// Authenticator uses a time step of 30), and then the skew in seconds
// (often used when calculating HOTPs for a sequence of consecutive
// time intervals, to deal with potential latency and desynchronization).
println!("TOTP: {:?}", otp::make_totp(&("base32secret3232".to_ascii_uppercase()), 30, 0).unwrap());
// there is a non-zero possibility of this assertion failing
assert_ne!(otp::make_totp(&"base32secret3232".to_ascii_uppercase(), 30, 0).unwrap(), 260182_u32);
许可证
rust-otp
根据 MIT许可证 许可。完整的许可证包含在此存储库中的 LICENSE.md
。
依赖项
~7–14MB
~273K SLoC