OTP 生成器(HOTP/TOTP) 使用指南
密钥 + 当前 30 秒计数 → 6 位动态码(每 30 秒变化)。…
核心功能
- 按 TOTP(基于时间)与 HOTP(基于计数)生成一次性口令
- 可选 6 位或 8 位口令长度,适配不同验证器要求
- 带剩余有效时间提示,便于理解 30 秒窗口
- 用于验证 2FA 接入的密钥与时间同步是否正确
适用场景
- 演示基于时间的一次性口令(如 2FA)。
- 验证 2FA 接入是否正确:用同一密钥在两侧分别生成,比对结果一致说明算法与时间同步都没问题。
使用步骤
- 确认服务端给的是 Base32 密钥(常见形如 JBSWY3DPEHPK3PXP)
- 把密钥粘贴进输入框,去掉空格
- 选择口令位数(多数站点用 6 位)
- 选择 TOTP 还是 HOTP:TOTP 依赖时间,HOTP 依赖计数器
- 把生成的口令与手机验证器对照;不一致时优先查设备时间是否偏差超过 30 秒
实用技巧
- 服务端通常接受前后各一个窗口以容忍轻微偏差
- 验证 2FA 接入是否正确:用同一密钥在两侧分别生成,比对结果一致说明算法与时间同步都没问题。
常见问题
- 为什么 30 秒失效?
- TOTP 以时间窗口为计数器,过期需重新算。
- 验证码对不上是什么原因?
- 最常见是时间不同步:TOTP 基于 Unix 时间按 30 秒步长计算,客户端与服务端时钟相差超过容差窗口就会失败,应先校准 NTP。其次是密钥录入错误(Base32 大小写或空格),以及把 HOTP 当成 TOTP。服务端通常接受前后各一个窗口以容忍轻微偏差。