生成的代码与 PyOTP 示例不匹配

短脸

当我找到PyOtp时,我正在寻找一个基于 Python 时间的 OTP 库我扫描了示例二维码

在此处输入图片说明

使用 Google Authenticator 并运行相关的示例代码

import pyotp
totp = pyotp.TOTP("JBSWY3DPEHPK3PXP")
print("Current OTP:", totp.now())

但是,我手机上的代码和应用程​​序生成的代码不匹配。我还尝试了另一个库(SpookyOTP)并且代码也不匹配。使用 PyOTP 生成我自己的密钥,而不是使用示例密钥,也没有使它起作用。

显然我做错了什么。我唯一想到的是这两个设备(我的电脑和我的手机)以某种方式没有使用相同的时间戳来生成代码。但是两个设备在时钟上显示相同的时间。

迪斯金

这些代码是基于时间的 - 您是否在设备上的 Google 身份验证器应用程序上扫描它们?

您必须确保手机和服务器(托管脚本的位置)上的时间同步。

要同步 Google 身份验证器应用程序:

我的 Google 身份验证器代码不起作用 (Android) 这可能是因为您的 Google 身份验证器应用程序上的时间未正确同步。

确保您有正确的时间:https : //support.google.com/accounts/answer/185834?hl=en

转到 Google Authenticator 应用程序的主菜单点击更多,然后点击设置。点击代码的时间校正 点击立即同步 在下一个屏幕上,应用程序将确认时间已同步,您现在应该可以使用您的验证码登录。同步只会影响您的 Google 内部时间身份验证器应用程序,不会更改您设备的日期和时间设置。

要同步您的服务器,您需要使用 NTP 进行同步(我假设是 Ubuntu,但它与其他操作系统类似):

https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-16-04

安装 要安装 ntpd,请从终端提示输入:

sudo apt install ntp

配置 编辑 /etc/ntp.conf 以添加/删除服务器行。默认情况下,这些服务器配置为:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

更改配置文件后,您必须重新加载 ntpd:

sudo systemctl reload ntp.service

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章