我使用django-otp生成hotp, 我尚未找到可正确生成hotp令牌的文档
所以我从verify_token
模型类的HOTPDevice
方法中读取了内容,了解了如何验证令牌
if hotp(key, counter, self.digits) == token:
verified = True
self.counter = counter + 1
self.save()
从上面我知道我可以使用hotp
函数创建令牌。
因此,我然后使用hotp函数生成令牌,但是我注意到当未确认令牌时,它会反复返回相同的令牌。那么在生成counter
时也应该增加它吗?
答案 0 :(得分:1)
所以我找到了RFC 4226 - HOTP的报价,
HOTP客户端(硬件或软件令牌)增加其计数器 然后计算下一个HOTP值的HOTP客户端
所以我应该先增加counter
,将其保存到对象,然后返回生成的令牌