otpauth://地址是什么?2FA参数完整解析

otpauth地址把TOTP类型、账户标签、密钥和算法参数放在同一个URI中,便于二维码和验证器准确导入。

otpauth地址的作用

2FA二维码通常不是一张随机图片,而是把otpauth地址编码进二维码。验证器扫描后读取其中的密钥、账户名称和算法参数,自动创建正确条目。

地址常以otpauth://totp/开头;如果是计数型验证码,则可能使用otpauth://hotp/。

常见参数分别表示什么

  • secret:Base32编码的共享密钥,是最敏感的核心参数。
  • issuer:服务或网站名称,用于在验证器中区分来源。
  • algorithm:HMAC使用的算法,例如SHA1、SHA256或SHA512。
  • digits:验证码位数,常见为6,也可能是8。
  • period:TOTP时间周期,主流默认值是30秒。
  • counter:HOTP使用的初始计数值,TOTP通常不需要。

标签和issuer为什么可能重复

路径标签常写成“服务名:账户名”,查询参数中又会单独提供issuer。这样既方便验证器显示,也帮助它识别服务来源。特殊字符和中文需要进行URI百分号编码。

如果服务名或账户显示不正确,通常只影响条目识别;如果secret、algorithm、digits或period错误,则会直接导致验证码不匹配。

如何排查导入失败

  1. 确认地址完整,以otpauth://开头,没有被聊天工具截断。
  2. 检查类型是totp还是hotp。
  3. 确认secret存在,并且解码后不是空值。
  4. 检查验证器是否支持指定算法、位数和周期。
  5. 重新从服务官方设置页生成二维码,不手动猜测缺失参数。

otpauth地址必须按密钥保护

地址中通常直接包含secret,因此复制完整地址、分享二维码或记录浏览器历史都可能暴露长期凭证。它不是普通网页链接,也不应该在浏览器地址栏打开。

需要调试时应使用测试密钥。真实地址一旦进入公开日志、工单或代码仓库,应立即撤销并重新绑定。

重点:不要把真实otpauth地址粘贴到搜索引擎或陌生的二维码生成网站。

常见问题

otpauth地址可以直接在浏览器打开吗?

普通浏览器通常不会像网页链接一样处理它。更重要的是地址包含密钥,不应进入地址栏历史或发送给第三方。

只复制secret,不复制其他参数可以吗?

只有在服务使用验证器默认的算法、位数和周期时才可能成功。标准URI能同时携带参数,优先完整导入更可靠。

参考标准与资料