TOTP/HOTP 动态验证码

输入 Base32 密钥,实时生成 TOTP/HOTP 动态验证码,支持二维码生成和 Google Authenticator 扫描

配置参数
仅支持 A-Z 和 2-7,建议 16 或 32 字符
二维码信息(可选)
当前 TOTP 验证码
------
剩余有效时间 -- 秒
上一个(-30s)
------
下一个(+30s)
------
验证验证码
扫描添加到 Authenticator
关于 TOTP/HOTP 动态验证码
  • TOTP(基于时间的一次性密码,RFC 6238):每 30 秒自动刷新,是 Google Authenticator、Authy 等应用的标准算法
  • HOTP(基于计数器的一次性密码,RFC 4226):每次使用后计数器递增,适用于硬件令牌等场景
  • 适用场景:调试两步验证集成、测试 OTP 服务端逻辑、生成临时访问令牌
操作说明
  • 输入 Base32 格式密钥(如 JBSWY3DPEHPK3PXP),点击「生成验证码」或点击「TOTP 示例」快速体验
  • TOTP 模式:验证码每 30 秒自动刷新,进度条显示剩余有效时间;同时展示上一个和下一个验证码(±1 容错窗口)
  • HOTP 模式:每次点击「生成验证码」后计数器自动 +1,也可手动调整计数器值
  • 填写账户名和发行方后点击「生成二维码」,可用 Google Authenticator / Authy 扫描添加
  • 在验证框输入验证码后点击「验证」,可校验当前时间窗口(±1 步长)内的有效性
  • 点击「随机生成密钥」按钮可生成一个随机 Base32 密钥
注意事项
  • TOTP 依赖系统时间,若本机时间与服务器时间偏差超过 30 秒,验证码将无法通过验证
  • 此工具仅用于开发调试,请勿将真实账户的 OTP 密钥输入任何在线工具
  • 所有计算均在浏览器本地完成,密钥不会上传至任何服务器
TOTP/HOTP 知识详解
TOTP 工作原理

TOTP 基于 HMAC-SHA1 算法,计算流程如下:

T = floor(当前Unix时间戳 / 时间步长) // 默认步长30秒 HMAC = HMAC-SHA1(Base32解码(密钥), T的8字节大端表示) 偏移 = HMAC最后一字节的低4位 截取 = HMAC[偏移..偏移+4] 的低31位 OTP = 截取 mod 10^位数 // 默认6位

客户端和服务端使用相同的密钥和时间,独立计算出相同的验证码,无需网络传输验证码本身。

TOTP vs HOTP 对比
维度TOTP(RFC 6238)HOTP(RFC 4226)
计数因子当前时间戳 / 步长递增计数器
有效期30 秒(可配置)直到使用为止
同步要求客户端与服务端时间同步计数器同步
典型应用Google Authenticator、Authy、Microsoft Authenticator硬件令牌(如 YubiKey)
安全性较高(短时效)中等(需防重放)
otpauth:// URI 格式说明

二维码中编码的是标准 otpauth:// URI,格式如下:

otpauth://totp/发行方:账户名?secret=BASE32密钥&issuer=发行方&algorithm=SHA1&digits=6&period=30
  • totp / hotp:OTP 类型
  • secret:Base32 编码的共享密钥(必填)
  • issuer:发行方名称,显示在 Authenticator 应用中
  • digits:验证码位数(6 或 8)
  • period:TOTP 时间步长(秒),HOTP 使用 counter
两步验证集成最佳实践
  • 服务端存储 Base32 密钥时应加密,不得明文存储
  • 验证时允许 ±1 步长的容错(即接受前一个和后一个验证码),以应对客户端时间轻微偏差
  • 每个验证码只能使用一次,服务端需记录已使用的验证码防止重放攻击
  • 提供备用恢复码(Recovery Codes),防止用户丢失设备后无法登录
  • 密钥长度建议 160 位(20 字节,Base32 编码后 32 字符)
常见 Authenticator 应用对比
应用平台云备份特点
Google AuthenticatoriOS / Android✅ Google 账户最广泛使用,界面简洁
AuthyiOS / Android / 桌面✅ Authy 云多设备同步,支持桌面端
Microsoft AuthenticatoriOS / Android✅ Microsoft 账户与 Microsoft 生态深度集成
1Password全平台✅ 1Password 云密码管理器内置 OTP
Bitwarden全平台✅ 自托管/云开源,支持自托管