PyOTP 生成的代码与 Google Authenticator 生成的代码不匹配
Posted
技术标签:
【中文标题】PyOTP 生成的代码与 Google Authenticator 生成的代码不匹配【英文标题】:PyOTP generated codes do not match with Google Authenticator generated codes 【发布时间】:2020-03-03 19:07:19 【问题描述】:我想在 Python 中实现由 Google Authenticator 生成的 2FA 代码
Google Play 上的 Google Authenticator 应用会为所需服务生成两步验证。
我在我的 Google 帐户上设置了 2FA,他们以“bsnz bwpn tji6 flto 5enn 6vd4 wji7 aaaa”的形式向我提供了密码,并注明“空格无关紧要”
所以,我在 Python 中尝试了以下代码,但它不起作用。
在 Google Authenticator 中,我已经选择了“基于时间”
我的计算机上运行以下脚本的时间与我的手机上安装了 Google Authenticator 应用程序的时间相同。
import pyotp, base64
totp = pyotp.TOTP( base64.b32encode("bsnz bwpn tji6 flto 5enn 6vd4 wji7 aaaa") )
print "Current OTP:" + totp.now()
Google Authenticator App 生成的验证码与我的验证码不匹配。
我做错了什么?
【问题讨论】:
【参考方案1】:您需要扫描使用二维码扫描仪生成的二维码。 你会得到类似的东西:
'otpauth://totp/testegmail.com?secret=MYSECRET&issuer=Google'
这是正确的秘密。
【讨论】:
仅适用于智能手机(安装了 Google Authenticator)【参考方案2】:去掉secret中的空格,pyOTP可能不会处理这个
【讨论】:
以上是关于PyOTP 生成的代码与 Google Authenticator 生成的代码不匹配的主要内容,如果未能解决你的问题,请参考以下文章
在让用户使用pyotp创建新密码之前如何实现基于OTP的验证?
Google Play 游戏服务 2017:如何邀请某人参加多人比赛?