2FA TOTP 验证码生成器
生成 SHA1 TOTP 动态码,对照本地时间窗口
先填 Base32 Secret 或 otpauth URI,直接生成当前 TOTP;参数说明可在高级模式查看。
——0s0完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。
工具说明
根据 Base32 Secret 或 otpauth://totp URI 生成 RFC 6238 HMAC-SHA1 TOTP 测试码,支持 6/8 位与 30/60 秒周期。URI 非空时优先提供 Secret 和参数;清空 URI 后可以直接编辑这些字段。工具显示当前与下一时间窗口,并将可选验证码与这两个本地值比较,不执行登录、账户开通或服务端验码。Secret 不上传,也不保存浏览器草稿。
生产可用片段
RFC 6238 SHA1 固定时间已知答案
text
Secret(ASCII 字节):12345678901234567890
Secret(Base32):GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
算法:SHA1
位数:8;周期:30 秒
Unix 时间:59;时间步:1
预期 TOTP:94287082
在线界面使用当前设备时间,通常会显示不同验证码。常见问题
支持哪些算法和 URI 类型?
仅支持 HMAC-SHA1 TOTP,位数为 6/8,周期为 30/60 秒。SHA256、SHA512、HOTP 计数器 URI,以及其他位数/周期会直接报错,避免悄悄算出不同验证码。URI 未写 algorithm、digits、period 时采用 SHA1、6、30。
粘贴的 URI 是否覆盖 Secret 与选项?
是。URI 非空时,Secret 和选项字段不可编辑,点击生成会读取 URI 中的 Secret、位数和周期。修改 URI 会移除旧结果;清空 URI 后可直接编辑字段。URI 必须自带 Secret,不会借用之前的字段值。
接受什么格式的 Base32 Secret?
接受字母 A–Z 与数字 2–7,不区分大小写,可带空白及正确的末尾 = 填充。解码后必须形成完整字节;不可能的长度和非零尾部填充位会被拒绝,不会悄悄移除连字符或中间填充。
“对比验证码”会验证真实登录吗?
不会。它仅将数字字符串与本地计算的当前和下一窗口验证码比较,不测试上一窗口,不连接认证服务器,也不提供防重放、限流或账户绑定检查。本地匹配不等于鉴权成功。
为什么与手机认证器的验证码不一致?
请核对 Secret 字节、SHA1 算法、位数、周期和时钟同步。TOTP 使用 Unix 时间,时区名称不参与计算,但设备时钟错误会改变窗口。部分认证器可能忽略非默认位数或周期,应使用实际应用验证。
Secret 与生成的验证码会保存吗?
不保存草稿,也不上传这些值。公开示例 Secret 是共享测试数据,不能用于真实账户。编辑或清空输入会使待完成的生成任务失效,离开页面会停止刷新计时器。
继续浏览