TOTP 验证码计算
输入 Base32 密钥,实时计算 TOTP 动态验证码并自动倒计时刷新。
------
等待计算
什么是 TOTP?
TOTP(Time-based One-Time Password,基于时间的一次性密码)是 RFC 6238 定义的开放标准,Google Authenticator、Microsoft Authenticator 等主流验证器 App 都基于它。它的原理是:用共享密钥(Secret)对「当前时间除以时间步长得到的计数器」做 HMAC-SHA1 运算,再从结果中截取一段数字作为验证码。由于密钥只有你和服务器知道,且验证码每 30 秒变化一次,即使验证码被截获也无法长期使用。
本工具在浏览器本地用 Web Crypto API 完成 HMAC-SHA1 计算,输入 Base32 密钥后实时显示当前验证码,并带倒计时条提示剩余有效期,窗口切换时自动刷新。它适合两类场景:一是自托管 2FA 备份恢复——手机丢失或验证器 App 被卸载时,用备份的密钥在本页重新生成验证码完成登录;二是开发者测试自己账号的 TOTP 流程。
重要提醒:TOTP 依赖共享密钥,本工具只能为「你知道密钥的账号」生成验证码。请勿输入他人的密钥——盗用他人验证码属于违法行为。请妥善保管密钥,不要随意分享。
使用步骤
- 打开账号的两步验证设置,找到 Base32 格式的密钥(Secret);
- 将密钥粘贴到输入框(空格会自动忽略,字母大小写均可);
- 点击「开始计算」,页面立即显示当前 6 位验证码;
- 在登录页面输入验证码;倒计时结束后验证码自动刷新,无需手动操作。
常见问题
TOTP 是什么?
TOTP 是基于时间的一次性密码(Time-based One-Time Password),每隔 30 秒基于共享密钥和当前时间生成一个 6 位动态验证码,常用于两步验证(如 Google Authenticator、Microsoft Authenticator)。
这个工具是用来偷别人验证码的吗?
不是。TOTP 算法依赖只有你自己知道的共享密钥(Secret),没有密钥就无法生成验证码。本工具只建议用于自托管 2FA 备份恢复或测试自己账号的验证码;盗用他人密钥生成验证码属于违法行为,请勿尝试。
密钥(Secret)在哪里找?
开启两步验证时,服务商(如 Google、GitHub、微软)会展示一串 Base32 编码的密钥。如果只显示了二维码,可点击「手动输入设置密钥」查看明文密钥。
为什么我算出的验证码不对?
常见原因:密钥输入有误(注意 O 与 0、I 与 1 的区别)、复制时多带了空格、手机与电脑时间不同步(相差超过 30 秒会失败)。
验证码过期了怎么办?
每个验证码只在当前 30 秒时间窗口内有效,窗口结束后页面会自动生成下一个验证码并重新倒计时,无需手动刷新。