美文网首页
使用 TOTP 实现双因子认证

使用 TOTP 实现双因子认证

作者: Yifan15 | 来源:发表于2018-02-22 11:12 被阅读462次
双因子认证

TOTP: Time-Based One-Time Password Algorithm(基于时间的一次性密码算法),具体可参考 RFC6238

使用诸如 TOTP 生成的动态口令可以实现登录时的二因子认证(密码+动态口令) ,关于双因子认证可以参考 这篇文章

本文简单阐述如何在自己的网站中集成双因子认证,服务端使用 python,客户端使用 Google Authenticator,在各个市场都可下载,无需联网即可使用

服务端

  • 安装 pyotp, pip install pyotp
  • 为每个用户生成一个 base32 的密钥 base32secret3232,保存在服务器数据库中 , 代码为 pyotp.random_base32()
  • 服务端在匹配时使用 totp = pyotp.TOTP('base32secret3232')
    totp.now() 即可获得当前动态口令

客户端

客户端使用 Google Authenticator 扫描二维码即可录入信息,二维码的内容可以在服务器生成 pyotp.totp.TOTP('base32secret3232').provisioning_uri("alice@google.com", issuer_name="Secure App")

  • base32secret3232 为之前生成的 base32 的密钥
  • alice@google.com 为用户的用户名,可以显示在客户端上
  • Secure App 为 APP/网站 的名字

之后 Google Authenticator 会每隔 30s 就更新一次动态口令,在需要二次认证的时候传入服务器做对比。二维码生成工具有很多,比如 qrious


参考资料:

打赏码

相关文章

网友评论

      本文标题:使用 TOTP 实现双因子认证

      本文链接:https://www.haomeiwen.com/subject/yvbatftx.html