TOTP 生成器(两步验证码)

由 Base32 密钥生成基于时间的一次性密码(TOTP),支持 SHA-1/256/512、6–8 位数字和任意周期。实时倒计时,已通过 RFC 6238 验证。

设置双重验证时服务提供的密钥。可以包含空格和小写字母。

留空则使用当前时间。

TOTP(RFC 6238)使用计数器 T = floor(Unix 时间 / 周期) 计算 HOTP。大多数应用使用 SHA-1、6 位、30 秒。设备时钟必须准确。密钥不会离开你的浏览器,但请像对待密码一样保管它。

完全在浏览器中运行,您的数据不会被上传。

什么是 TOTP 生成器(两步验证)?

此工具根据 Base32 密钥,计算出与验证器应用显示的相同的 6–8 位验证码。它会实时刷新并带有倒计时,同时显示上一个和下一个验证码,还能计算任意 Unix 时间的验证码以测试服务器。

如何使用 TOTP 生成器(两步验证)

  1. 粘贴密钥(Base32),或点击生成随机密钥。
  2. 设置算法、数字和周期,使其与服务一致(通常为 SHA-1、6、30)。
  3. 查看当前验证码和剩余秒数。
  4. 也可输入 Unix 时间,计算特定时刻的验证码。

示例

输入
Secret GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ, SHA-1, 8 digits, Unix time 59
输出
94287082

RFC 6238 附录 B 的测试向量(密钥是 ASCII 12345678901234567890 的 Base32 形式)。

何时使用 TOTP 生成器(两步验证)

适用于测试两步验证的实现、在你持有密钥时于桌面端恢复验证码,或了解 TOTP 的工作原理。不要把你真实账号的密钥保存在浏览器标签页里;请使用验证器应用或密码管理器。

TOTP 生成器(两步验证) 的工作原理

TOTP(RFC 6238)以计数器 T = floor(Unix 时间 / 周期) 计算 HOTP(RFC 4226):用 Base32 解码后的密钥对 8 字节大端计数器做 HMAC-SHA-1/256/512,然后进行动态截断(偏移 = 最后一个半字节)并对 10^位数 取模。HMAC 由 Web Crypto API 计算。RFC 6238 附录 B 的所有测试向量都能精确重现。

常见用例

  • 在开发中的 Web 应用里测试 TOTP 登录
  • 通过比对验证码检查服务器时钟漂移
  • 重现 RFC 6238 测试向量
  • 为 CI 文档中的测试账号生成验证码

安全提示

TOTP 密钥与密码同样敏感:任何拥有它的人都能生成你的验证码。

常见问题

为什么我的验证码与应用的不一致?

请检查算法、数字位数和周期是否一致,并确认你电脑的时钟准确;30 秒的时钟差异就会改变验证码。

我的密钥会被发送到别处吗?

不会。HMAC 在你的浏览器中用 Web Crypto 计算。

使用的是哪种 Base32 字母表?

RFC 4648:A–Z 和 2–7。空格、短横线、小写字母和 = 填充都会被接受并忽略。

探索更多分类