在线工具箱
TOTP 验证码

TOTP 两步验证码生成器

根据密钥本地生成 6/8 位动态验证码,支持二维码解析。

隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传
TOTP2FA验证码

支持 otpauth:// 链接自动解析发行方、账号、算法、位数与周期;也支持手写密钥,以及 RFC 6238 测试向量中的 ASCII 密钥。

高级选项:时间偏移校准
秒(本地时间比服务器快填正数,慢填负数)

工作原理

  1. 1输入 Base32 密钥(如 JBSWY3DPEHPK3PXP),或直接粘贴 otpauth:// 链接,由工具自动解析出算法、位数与周期等参数。
  2. 2选择 HMAC 算法、验证码位数与时间周期,默认 SHA-1 / 6 位 / 30 秒,与绝大多数两步验证服务一致。
  3. 3工具把当前 Unix 时间戳除以周期得到计数器 T,用密钥对 T 做 HMAC 计算,再对摘要做动态截断并取模,得到本次验证码。
  4. 4验证码在倒计时结束后自动刷新;若服务端提示验证码错误,可先尝试相邻时间窗口的验证码或校准本地时间偏移。
  5. 5账户信息保存在浏览器 localStorage 中,可随时导出 JSON 备份,或导入到其他设备继续使用。

常见问题

什么是 TOTP?和短信验证码有什么区别?

TOTP(Time-based One-Time Password,RFC 6238)是基于共享密钥与当前时间的动态口令算法:每 30 秒由 HMAC 计算出一个一次性验证码。相比短信验证码,它不依赖网络与运营商,密钥只保存在本地,因此更安全、更可靠,也不会因信号问题收不到。

验证码总是提示错误怎么办?

最常见的原因是本地设备时间与服务器时间不同步。可以先展开「时间偏移校准」手动补偿秒数,或在系统中开启自动时间同步;也可以直接尝试工具展示的上一窗口 / 下一窗口验证码(服务器通常允许 ±1 个窗口的容错)。

密钥会被上传或泄露吗?

不会。所有计算都在你的浏览器本地完成,页面不发起任何网络请求,断网也能正常使用。账户数据仅保存在当前浏览器的 localStorage 中,清除浏览器数据会一并删除,建议先导出 JSON 备份。

为什么密钥要用 Base32 而不是普通文本?

otpauth 规范约定密钥使用 RFC 4648 Base32 编码,只包含 A-Z 与 2-7,不含容易混淆的字符,便于手工抄写输入。本工具同时兼容 RFC 6238 测试向量中的 ASCII 原始密钥(含非 Base32 字符时按原始文本处理)。

支持 8 位验证码和 SHA-256 / SHA-512 吗?

支持。部分服务(例如某些云平台与企业内网系统)使用 8 位验证码或 SHA-256 / SHA-512 算法,可在参数区手动切换;粘贴 otpauth 链接时工具会自动识别链接中携带的 algorithm、digits、period 参数。

同一个密钥能生成多少个有效验证码?

每个时间窗口(默认 30 秒)只会产生一个有效验证码,窗口内可重复使用,窗口结束后立即失效。密钥本身可以一直使用,服务端与客户端只要密钥与时间一致,就能算出相同的验证码。

更多在线工具