pyotp 时间密码生成器 python插件


pyotp是一个用于生成和验证基于时间的一次性密码(TOTP)和基于计数器的一次性密码(HOTP)的Python模块。

它提供了一个简单而灵活的接口,用于实现二次身份验证(2FA)和单次密码验证机制。


import pyotp
import time

totp = pyotp.TOTP('XFXXGRMELERZXQ7AQNF3UNF2OX56NOQ3') # 预共享密钥
val = totp.now()  # 获得基于当前时间戳生成动态密码
print(val)

# OTP verified for current time
print(totp.verify(val)) # 此时验证是通过的,所以verify的结果是True
time.sleep(30)
print(totp.verify(val)) # 30秒后动态密码将会过期,所以verify的结果是False

# 输出
411092
True
False


pyotp提供了一个辅助函数来生成32个字符的base32密码,与Google Authenticator和其他OTP应用程序兼容

pyotp.random_base32()

如果另外的一些应用程序希望将密钥格式化为十六进制编码的字符串,可以使用:

pyotp.random_hex() # 返回一个40个字符的十六进制编码的秘钥


作者:spike

分类: Python

创作时间:2023-11-28

更新时间:2024-12-09

联系方式放在中括号之中例如[[email protected]],回复评论在开头加上标号例如:#1