2FASync
先识别密钥格式,再检查是否可导入
许多二维码都会被称作“OTP 码”,但其内部可能使用不同算法或计数方式。加入保险库之前,应该检查原网站的设置与此处支持的格式。
可用的 TOTP 设置
2FASync 支持 Base32 共享密钥和 otpauth://totp/ URI,以及指定配置下的 6 位、8 位数字和 SHA-1、SHA-256、SHA-512。
裸 Base32 密钥按默认的 SHA-1、6 位、30 秒方式解释;合法 URI 可以指定有效的时间周期,范围按实现规则为 1 至 86400 秒。
不能把所有记录强行按 30 秒转换
站点若采用不同周期,擅自修改为常见默认值会得到错误验证码。导入时应保留其可识别的有效参数,确认是否与原网站一致。
同名账号可能持有不同密钥,遇到重复提示要逐条核对,不能凭标签自动覆盖。
HOTP 和未知配置的处理
按计数器前进的 HOTP 不属于 2FASync 可导入的 TOTP 集合。不能识别的算法、位数或迁移配置应清楚标为不支持,避免误导为导入成功。
如果原账户只能使用未支持的格式,请保留原认证方式或咨询该网站的正规设置说明。
两个导入入口的参数不能混为一谈
直接输入纯 Base32 密钥时,默认采用 SHA-1、六位数和三十秒周期。包含参数的 otpauth://totp/ URI 若满足严格验证规则,则可以携带其他受支持的位数、SHA 算法和 1 至 86400 秒之间的有效周期。
Google 身份验证器迁移二维码的解析受另一组更明确的迁移规范约束。不能因为通用 URI 可设特殊周期,就对外宣称所有 Google 迁移记录均可保留该周期。
看到不支持警告时不应随便改为 TOTP 或删除原记录。对计数型 HOTP 和未知配置,继续使用发码服务官方推荐的认证方法更可靠。
