关于此工具
TOTP(基于时间的一次性密码,RFC 6238)是 Google Authenticator、Microsoft Authenticator、Authy 以及大多数"扫描二维码"双因素认证背后所显示六位验证码的算法。它的原理是将共享密钥与当前时间(按固定窗口向下取整,通常为 30 秒)结合,再通过 HMAC 运算——这与 RFC 4226 的 HOTP 使用的是同一种构造,只是用时间派生的计数器代替了递增计数器。由于双方(你的设备和服务器)都知道密钥并且都能读取时钟,因此双方可以各自独立计算出相同的验证码,而无需传输密钥本身。
本工具在客户端使用浏览器原生的 WebCrypto HMAC 实现完整运行 RFC 6238 算法:粘贴(或生成)一个 Base32 编码的密钥,即可实时得出当前验证码,每秒刷新一次,并在 30 秒窗口结束时准确翻转。它适用于开发者验证 TOTP 实现、测试引导流程,或理解验证器验证码的实际计算方式——而不适合用来存储您真实账户的双因素密钥。
常见问题
这与 Google Authenticator 使用的算法相同吗?
是的——此工具实现的是使用 SHA-1(默认)的 RFC 6238 TOTP 标准,这正是 Google Authenticator、Authy、Microsoft Authenticator 和大多数双因素认证应用所使用的算法。在给定相同密钥的情况下,此工具与那些应用会在同一时刻生成完全相同的验证码。
为什么我的验证码不再与我的身份验证器应用匹配了?
最常见的两个原因是:你设备的时钟出现了偏差(TOTP 是基于时间的,因此双方都需要准确的时钟——请同步你的系统时间),或者你输入/粘贴的 Base32 密钥有细微错误。请逐字符仔细核对密钥,因为 TOTP 本身没有内置机制来检测密钥中的输入错误。