时间同步修复:验证码失效的头号原因
原理一句话
TOTP 的码 = 密钥 + 当前时间算出来的。你的手机和网站服务器各自算同一个数,手机时间偏了,算出来的数就不一样。服务端通常容忍前后各一个 30 秒窗口(约 90 秒宽),偏差超线就全拒。
Android 修复步骤
- 设置 → 系统(或通用管理)→ 日期和时间。
- 打开自动设置时间(使用网络提供的时间)与时区自动。
- 已开启仍出错:先关掉,等 10 秒,再打开——强制重新同步。
- 重启手机(清掉系统时钟的顽固漂移)。
iPhone 修复步骤
- 设置 → 通用 → 日期与时间。
- 打开自动设置。
- 已开启则:关闭 → 等 10 秒 → 重新打开。
- 重启手机。
常见疑问
Q:我出国手动调了时区,会影响出码吗?正常情况不影响——TOTP 用 UTC 计算,时区只是显示层。但个别机型手动时区会把系统时钟带偏,所以尽量用"自动时区"。
Q:为什么自动时间也会漂?基准是网络时间,信号差、重启后未同步、老电池设备都可能出现分钟级漂移。重置开关 + 重启能解决大多数。
Q:能像某些应用那样"应用内同步时间"吗? FreeOTP 没有内置时间校准功能(部分竞品有)。它依赖系统时间——所以修复动作都在系统设置里做。
验证修复成功
修完时间,出码立刻去网站试一次。通过 → 收工;仍失败 → 回 验证码总排查 走第六步重绑。
相关页面
- 算法与窗口:TOTP 与 HOTP
- 读码节奏:点开令牌读码