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错误,则会直接导致验证码不匹配。
如何排查导入失败
- 确认地址完整,以otpauth://开头,没有被聊天工具截断。
- 检查类型是totp还是hotp。
- 确认secret存在,并且解码后不是空值。
- 检查验证器是否支持指定算法、位数和周期。
- 重新从服务官方设置页生成二维码,不手动猜测缺失参数。
otpauth地址必须按密钥保护
地址中通常直接包含secret,因此复制完整地址、分享二维码或记录浏览器历史都可能暴露长期凭证。它不是普通网页链接,也不应该在浏览器地址栏打开。
需要调试时应使用测试密钥。真实地址一旦进入公开日志、工单或代码仓库,应立即撤销并重新绑定。
重点:不要把真实otpauth地址粘贴到搜索引擎或陌生的二维码生成网站。
常见问题
otpauth地址可以直接在浏览器打开吗?
普通浏览器通常不会像网页链接一样处理它。更重要的是地址包含密钥,不应进入地址栏历史或发送给第三方。
只复制secret,不复制其他参数可以吗?
只有在服务使用验证器默认的算法、位数和周期时才可能成功。标准URI能同时携带参数,优先完整导入更可靠。