django-otp:生成hotp令牌时,我应该增加计数器吗?

时间:2018-12-05 04:58:49

标签: python security token hmac

我使用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时也应该增加它吗?

来源:HOTPDevice source from django-otp

1 个答案:

答案 0 :(得分:1)

所以我找到了RFC 4226 - HOTP的报价,

  

HOTP客户端(硬件或软件令牌)增加其计数器      然后计算下一个HOTP值的HOTP客户端

所以我应该先增加counter,将其保存到对象,然后返回生成的令牌