首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改pyotp.totp模块的间隔?

如何更改pyotp.totp模块的间隔?
EN

Stack Overflow用户
提问于 2017-06-27 18:04:23
回答 3查看 1.9K关注 0票数 2
代码语言:javascript
复制
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输出,但我得到了以下输出。

EN

回答 3

Stack Overflow用户

发布于 2018-01-27 05:05:23

我想,你想用;

代码语言:javascript
复制
...
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

票数 3
EN

Stack Overflow用户

发布于 2017-06-27 18:10:38

看一下the source,看起来您需要做的就是将interval作为kwarg传递给TOTP构造函数:

代码语言:javascript
复制
totp = pyotp.TOTP('secret', interval=60)
# ...
票数 2
EN

Stack Overflow用户

发布于 2020-04-30 07:43:48

需要检查的一件事是,您的验证totp设置为与生成器相同的时间间隔。这将不起作用:

代码语言:javascript
复制
    secret = pyotp.random_base32()
    totp = pyotp.TOTP(secret, interval=60)
    otp = totp.now()

然后再来验证..。

代码语言:javascript
复制
    totp = pyotp.TOTP(secret)
    totp.verify(otp)

...will fail..but这将不会...

代码语言:javascript
复制
    totp = pyotp.TOTP(secret, interval=60)
    totp.verify(otp)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44777493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档