基于开源的代码(@Author:gbraad.nl),搭建了一个在线版的身份验证器,方便使用。 TOTP、Google Authenticator 在线版
$$ HTOP(K,C) = Truncate(HMAC-SHA-1(K,C))$$
客户端和服务器事先协商好一个密钥K,用于一次性密码的生成过程。此外,客户端和服务器各有一个计数器C,并且事先将计数值同步。而Truncate是为了获得一个符合HTOP要求的值。
Time-based One-time Password (TOTP):即基于时间的一次性密码算法,也称时间同步的动态密码。
$$TOTP = Truncate(HMAC-SHA-1(K,T))$$
TOTP是HOTP的一个变种,将HOTP中的计数器C替换为依托时间的参数T,T是由当前时间(CurrentUnixTime、初始时间(T0)、步长(X)决定的。即:$$ T = (Current Unix time – T0) / X $$
https://github.com/gbraad/gauth