#otp #一次性 #一次性密码 #rust

otp-rs

使用Rust编写的符合RFC的一次性密码算法

1个不稳定版本

0.1.1 2021年11月18日
0.1.0 2021年11月18日

#15 in #一次性

每月 37 次下载

MIT 许可证

6KB
132

otp-rs

使用Rust编写的符合RFC的一次性密码算法。

基于HMAC的一次性密码算法实现符合RFC4226。基于时间的一次性密码算法实现符合RFC 6238

安装

[dependencies]
otp-rs= "0.1"

HOTP示例

  let otp = HOTP::new("secret");
  /// Generate code with counter 0 input
  let code = otp.generate(0).unwrap();

  println!("{}", code);

TOTP示例

let otp = TOTP::new("secret");
/// Generate code with period and current timestamp
 let timestamp = SystemTime::now()
    .duration_since(UNIX_EPOCH)
    .unwrap()
    .as_secs();
  let code = otp.generate(30, timestamp);
  println!("{}", code);

依赖项

~735KB
~14K SLoC