跳到主要内容

1.2. Background (背景)

1.2. Background (背景)

如 [RFC4226] 中所定义, HOTP 算法基于 HMAC-SHA-1 算法 (如 [RFC2104] 中所规定), 并应用于递增的计数器值, 该计数器值代表 HMAC 计算中的消息。

基本上, HMAC-SHA-1 计算的输出被截断以获得用户友好的值:

HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))

其中 Truncate 表示可以将 HMAC-SHA-1 值转换为 HOTP 值的函数。K 和 C 代表共享密钥和计数器值; 有关详细定义, 请参见 [RFC4226]。

TOTP 是该算法的基于时间的变体, 其中值 T (从时间参考和时间步长导出) 替代了 HOTP 计算中的计数器 C。

TOTP 实现可以使用基于 SHA-256 或 SHA-512 [SHA2] 哈希函数的 HMAC-SHA-256 或 HMAC-SHA-512 函数, 而不是在 [RFC4226] 中为 HOTP 计算指定的 HMAC-SHA-1 函数。