关键信息
- 分类
- 安全与校验
- 输入类型
- text, select, number
- 输出类型
- html
- 样本覆盖
- 4
- 支持 API
- Yes
概览
本工具是一个完全离线的 TOTP 和 HOTP 动态密码生成器。只需输入 Base32 格式的共享密钥,即可在本地安全地计算出符合 RFC 6238(基于时间)和 RFC 4226(基于计数器)标准的一次性密码(2FA 验证码),支持自定义 HMAC 算法、位数及步长,并能生成用于导入身份验证器 App 的 otpauth:// 链接。
适用场景
- •需要验证手机身份验证器(如 Google Authenticator 或 Authy)生成的 2FA 验证码是否与密钥源头一致时。
- •在开发或测试双因素认证(2FA)登录流程时,需要快速获取当前或后续时间步长的动态验证码。
- •想要将备份的 Base32 密钥重新转换为 otpauth:// 格式的 URI,以便快速扫码迁移到新的验证器设备。
工作原理
- •用户输入 Base32 编码的共享密钥,工具在本地将其解码为原始字节流,自动忽略空格等干扰字符。
- •根据选择的模式(TOTP 或 HOTP),工具获取当前的 UNIX 时间戳(计算时间步长)或指定的计数器值作为输入。
- •使用选定的 HMAC 算法(SHA-1/SHA-256/SHA-512)对输入进行哈希计算,并通过标准动态截断算法提取出 6 位或 8 位的数字密码。
- •实时渲染出当前验证码、倒计时进度条、后续多个时间窗的预测码,并拼接生成标准的 otpauth:// URI。
使用场景
用户案例
1. 生成标准 6 位 TOTP 动态码
运维工程师- 背景原因
- 运维工程师在配置服务器 SSH 双因素认证时,获得了一个 Base32 格式的备份密钥,需要验证该密钥是否能正确生成与手机一致的验证码。
- 解决问题
- 快速获取当前 30 秒时间步长下的 6 位 TOTP 验证码,并生成导入链接。
- 如何使用
- 在“共享密钥”输入框中粘贴密钥 `JBSWY3DPEHPK3PXP`,模式选择 `TOTP`,算法选择 `SHA-1`,位数选择 `6`,步长选择 `30`,并填写签发方为 `Acme`,账户为 `[email protected]`。
- 示例配置
-
secret: "JBSWY3DPEHPK3PXP", mode: "totp", algorithm: "sha1", digits: "6", period: "30", issuer: "Acme", account: "[email protected]" - 效果
- 页面立即显示当前的 6 位动态验证码、倒计时圆环、后续 5 个时间段的预测码,并生成了用于导入的 otpauth:// 链接。
2. 基于计数器的 HOTP 验证码生成
安全测试员- 背景原因
- 测试员正在评估一个使用 HOTP(基于计数器)协议的旧版企业登录网关,需要手动模拟计数器递增时的验证码变化。
- 解决问题
- 获取特定计数器值(如计数器为 12)下的 8 位 HOTP 验证码。
- 如何使用
- 输入共享密钥,将模式切换为 `HOTP`,位数选择 `8`,计数器输入 `12`,预览数量设为 `3`。
- 示例配置
-
secret: "JBSWY3DPEHPK3PXP", mode: "hotp", algorithm: "sha1", digits: "8", counter: 12, preview: 3 - 效果
- 工具输出计数器为 12 时的 8 位动态密码,并同时展示计数器为 13、14、15 的预测密码,方便进行步长漂移测试。
用 Samples 测试
hash相关专题
常见问题
这个工具安全吗?我的密钥会被上传吗?
完全安全。本工具完全在您的浏览器本地运行,所有计算均在离线状态下完成,绝不会向任何服务器发送您的共享密钥。
为什么我生成的 TOTP 验证码和手机 App 上的不一致?
请检查您的系统时间是否准确同步,以及 HMAC 算法(默认 SHA-1)、位数(默认 6 位)和步长(默认 30 秒)是否与您的账户配置一致。
什么是 otpauth:// URI?
这是一种标准协议格式,用于将 2FA 账户信息(包括密钥、签发方和账户名)打包,方便通过二维码或链接直接导入到 Google Authenticator 等 App 中。
支持哪些 HMAC 算法?
支持 RFC 标准定义的 SHA-1、SHA-256 和 SHA-512 算法,能够兼容绝大多数主流的安全认证场景。
如何使用 HOTP 模式?
选择 HOTP 模式后,您需要手动指定一个计数器(Counter)数值,工具会基于该计数器生成一次性密码,每次验证成功后计数器需递增。