📅  最后修改于: 2023-12-03 15:38:35.898000             🧑  作者: Mango
即时密码(One-Time Password,简称 OTP),是一种只能使用一次的密码。在网络环境下,为了使用户在使用密码时能够更安全地传输保密资料,提供了这一种密码。OTP生成器就是用来生成这种密码的工具。
pip install pyotp
import pyotp
# 获取HOTP算法TOTP对象
hotp = pyotp.HOTP('JBSWY3DPEHPK3PXP')
# 生成验证码
otp = hotp.at(0) # 第0次,因为是动态密码,每次使用后需要+1
print(otp)
import pyotp
# 获取TOTP算法TOTP对象
totp = pyotp.TOTP('JBSWY3DPEHPK3PXP')
# 生成验证码
otp = totp.now()
print(otp)
注:'JBSWY3DPEHPK3PXP'是一个随机的Base32字符串,实际中需要替换为自己的密钥。
import pyotp
# 获取TOTP算法TOTP对象
totp = pyotp.TOTP('JBSWY3DPEHPK3PXP')
# 生成长度为8的验证码
otp = totp.at(int(time.time()), length=8)
print(otp)
import pyotp
# 获取TOTP算法TOTP对象
totp = pyotp.TOTP('JBSWY3DPEHPK3PXP', interval=60)
# 生成验证码
otp = totp.now()
print(otp)
注:interval的单位是秒,默认值是30。
以上就是制作OTP生成器的步骤,通过PyOTP库可以很方便地生成OTP。实际部署时,需要根据具体情况选择采用HOTP还是TOTP算法,以及定义自己的密钥、长度和时间步长等参数。希望对大家有所帮助!