TOTP 验证码 在浏览器本地生成基于时间的一次性口令(TOTP,RFC 6238),也就是各类两步验证(2FA)App 里那串每 30 秒刷新的 6 位动态码。输入 Base32 密钥或直接粘贴 otpauth:// 链接,即可实时出码并显示倒计时;可调位数、周期、算法,还能反向生成配置二维码供验证器扫码导入。可保存多个账号并随时切换。全部计算在本机完成,密钥不上传;账号与密钥保存在当前浏览器本地。
因为双方用的是同一份密钥和同一个时间步,服务端无需联网通信也能验证你输入的码——这正是 TOTP 的精妙之处。
⚠️ 安全提醒:动态码本身有效期很短,但密钥(seed)是长期凭证。不要在公共设备粘贴真实账户密钥,也不要把它截图、明文存档。本工具用于学习与调试,不替代正规验证器。
不上传。Base32 解码、HMAC 计算、出码全部在浏览器本地通过 JavaScript HMAC 完成,密钥不会随计算上传。你添加的账号与密钥会保存在当前浏览器的 localStorage 中,下次打开自动恢复;清空输入框不会删除已保存的账号,删除请点账号卡片上的 ×。但请注意:⚠️ 不要在公共/不可信设备上粘贴真实账户的 2FA 密钥,密钥一旦泄露等同于绕过你的两步验证。本工具仅适合学习、调试和临时取码。
可以。输入合法密钥后会自动存成一个账号,点账号条右侧的「+」继续加下一个,最多 50 个;点一下卡片即可切换,当前账号高亮显示。每个账号可以填一条备注用来区分(比如「公司邮箱」「备用号」);卡片名优先取备注,其次发行方、账户名,都没填则显示密钥前几位。备注只存在本机,不会写进 otpauth 链接和二维码。「随机生成」和「粘贴」都会新建账号,不会覆盖当前这条已存的密钥;要删除某个账号,点卡片上的 × 并二次确认。
一样,前提是参数一致。默认 SHA1、6 位、30 秒周期正是 Google Authenticator 等主流验证器的标准配置(RFC 6238)。只要密钥相同、设备时间准确,本工具和它们生成的动态码完全相同、同步刷新。
最常见是三类原因:① 设备时间不准——TOTP 完全依赖系统时间,差超过一个时间步就对不上,请校准时钟;② 参数不符——对方可能用了 SHA256/SHA512、8 位或 60 秒周期,需在选项里改成一致;③ 密钥格式——密钥必须是 Base32(仅 A–Z、2–7),不要误填 Hex 或带了多余字符。
支持。位数可选 6/7/8,周期可选 15/30/60 秒,算法可选 SHA1/SHA256/SHA512,覆盖绝大多数服务的配置。粘贴标准 otpauth:// 链接时,里面带的 digits、period、algorithm、issuer 也会被自动解析填入。
TOTP 密钥按 RFC 4648 Base32 编码,字符集是 A–Z 和 2–7。大小写不敏感、空格和短横线会被自动忽略(很多服务把密钥按 4 位一组带空格展示,直接整段粘贴即可)。结尾的 = 填充也会被忽略。
不建议长期替代。它没有加密存储、没有锁屏保护,你添加的多个账号与密钥会以明文持续保存在当前浏览器本地,下次打开自动恢复。它的定位是开发调试、参数验证和应急取码;日常 2FA 请继续用 Authenticator App 或硬件密钥这类有安全存储的方案。