先做三个快速检查
- 等待验证码刷新后,立即输入新生成的验证码。
- 开启手机和电脑的“自动设置日期与时间”。
- 确认登录的是正确账户,身份验证器中没有选中同名的旧条目。
如果问题解决,通常是验证码处于30秒窗口尾部,或本机时间存在短暂偏差。
检查系统时间是否准确
TOTP并不依赖所在时区,但高度依赖Unix时间。设备即使只偏差几十秒,也可能落入前一个或后一个验证码窗口。请启用网络自动校时,然后完全关闭并重新打开身份验证器。
服务器开发者还需要检查服务器NTP状态。服务端与用户设备使用同一密钥但时间窗口不同,会导致所有正确验证码被拒绝。
避免在倒计时结束前输入
验证码显示时有效,不代表提交到服务器时仍有效。如果剩余时间少于5秒,建议等待下一组验证码。复制、切换窗口、输入密码和网络传输都需要时间。
确认Base32密钥没有录错
标准Base32密钥通常只包含字母A-Z和数字2-7。常见错误包括把字母O看成数字0、把字母I看成数字1,或者复制了二维码旁的账户名称。
注意:不要在不可信的网站反复尝试真实密钥。2FA密钥是长期凭证,泄露后应重新绑定。
检查算法、位数和周期
常见默认值为SHA-1、6位和30秒,但部分服务会使用SHA-256、SHA-512、8位验证码或不同时间周期。手动录入时,需要让验证器参数与服务端完全一致。标准otpauth://地址通常会携带这些信息。
仍然错误时重新绑定
先使用恢复代码登录,移除旧验证器,再生成新的二维码和密钥。完成绑定后不要立刻删除旧备份,先退出账户并用新验证码成功登录一次。
如果多个设备同时失败,应联系服务提供方确认账户状态;不要连续高频尝试,以免触发安全锁定。
用本站验证密钥
在可信设备上,可以把Base32密钥输入本站首页。如果本站与手机身份验证器产生相同验证码,问题更可能在目标服务的时间或账户绑定状态;如果结果不同,则应检查密钥和TOTP参数。