2个版本
0.1.1 | 2023年11月12日 |
---|---|
0.1.0 | 2023年11月12日 |
#1013 in 身份验证
9KB
149 行
此包是一个库,旨在提供即插即用的HOTP和TOTP客户端,用于生成一次性密码。
HOTP
与base32密钥字符串一起工作
use otps::HotpBuilder;
let mut hotp_client = HotpBuilder::new()
.base32_secret("GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ")
.build()
.expect("failed to initialize HOTP client");
assert_eq!(hotp_client.generate(), "755224");
hotp_client.increment_counter();
assert_eq!(hotp_client.generate(), "287082");
如果密钥字符串不是base32编码,您应使用以下方法替代.key(secret_string.as_bytes().to_owned())
,而不是使用.base32_secret
方法。
TOTP
与base32密钥字符串一起工作
use otps::TotpBuilder;
let mut totp_cleint = TotpBuilder::new()
.base32_secret("GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ")
.build()
.expect("failed to initialize TOTP client");
let totp_code = totp_cleint.generate();
println!("TOTP: {}", totp_code);
如果密钥字符串不是base32编码,您应使用以下方法替代.key(secret_string.as_bytes().to_owned())
,而不是使用.base32_secret
方法。
依赖关系
~7–15MB
~279K SLoC