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 生成器(两步验证)
- 粘贴密钥(Base32),或点击生成随机密钥。
- 设置算法、数字和周期,使其与服务一致(通常为 SHA-1、6、30)。
- 查看当前验证码和剩余秒数。
- 也可输入 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。空格、短横线、小写字母和 = 填充都会被接受并忽略。