totp = pyotp.TOTP("base32secret3232")
totp.at(time.time(),60)
print("Current OTP:", totp.now())
otp=totp.now()
text='Your OTP is ' + totp.now()
print totp.verify(otp)
time.sleep(32)
print totp.verify(otp)我希望将间隔从默认的30更改为60。在time.sleep(32)之前和之后,我都应该得到True输出,但我得到了以下输出。
发布于 2018-01-27 05:05:23
我想,你想用;
...
print totp.verify(otp, valid_window=1)
time.sleep(32)
print totp.verify(otp, valid_window=1)
...若要延长验证间隔,请将OTP值设置为-1、0和+1,这将在3个间隔内返回true。
文档位于;https://pyotp.readthedocs.io/en/latest/#pyotp.totp.TOTP.verify
发布于 2017-06-27 18:10:38
看一下the source,看起来您需要做的就是将interval作为kwarg传递给TOTP构造函数:
totp = pyotp.TOTP('secret', interval=60)
# ...发布于 2020-04-30 07:43:48
需要检查的一件事是,您的验证totp设置为与生成器相同的时间间隔。这将不起作用:
secret = pyotp.random_base32()
totp = pyotp.TOTP(secret, interval=60)
otp = totp.now()然后再来验证..。
totp = pyotp.TOTP(secret)
totp.verify(otp)...will fail..but这将不会...
totp = pyotp.TOTP(secret, interval=60)
totp.verify(otp)https://stackoverflow.com/questions/44777493
复制相似问题