跳到正文

安全入门

验证码为什么每隔几十秒就会变?

不用联网也能生成,下次打开又是新的数字。看看 TOTP 背后的密钥和时钟是怎么配合的。

作者 Authenticator Cloud发布于 2 分钟阅读
动态验证码为什么每隔几十秒就会变化?主题原创插画
先说结论

绑定时,网站和验证器保存了同一份设置密钥。之后双方用这份密钥和当前时间计算验证码,所以验证器可以在离线时生成数字,到了下一个时间段就会刷新。

本文目录
  1. 绑定时,网站给了验证器一份密钥
  2. 倒计时结束,为什么数字就变了?
  3. 没网络时,为什么仍能看到验证码?
  4. 理解原理后,日常使用就看这三件事

绑定时,网站给了验证器一份密钥

添加账户时,二维码通常包含生成凭据所需的信息。眼前的短码只是计算结果,不是完整备份。只记住一串会变化的数字,不能在换机后重新建立这个账户。

二维码和手动设置密钥都应按敏感凭据处理。给别人看一张设置截图,可能比告诉他一个即将过期的验证码影响更久。

倒计时结束,为什么数字就变了?

TOTP 将时间划成连续区间,再为当前区间计算代码。RFC 6238 推荐的默认步长是 30 秒,但不能据此认定每个网站都使用相同参数。

倒计时接近结束时,先等下一轮再输入通常更容易判断结果。网站接受多大的时间偏差,由网站决定;反复提交过期号码不会帮助它重新同步。

没网络时,为什么仍能看到验证码?

生成 TOTP 只需要保存的密钥、对应参数和设备时间,所以手机暂时没有网络时,验证码仍会变化。等手机或电脑联网后,再到网站完成登录。

云同步是另外一个步骤,需要联网完成。准备在另一台设备取码时,先同步账号,再打开列表查看就好。

理解原理后,日常使用就看这三件事

在 Authenticator Cloud 中,为账号写清名称,留意验证码的倒计时。快到期时等下一轮,再复制或填入网站。

手动添加时按网站提供的类型、位数、算法和周期填写。遇到代码无效,先检查下面三项。

  • 选中的服务和账号是否正确。
  • 设备是否开启自动校时。
  • 网站的绑定确认是否已经完成。

参考资料

详细设置步骤可参阅以上官方帮助。

下载 APP

Apple App StoreiPhone / iPad 前往下载 Android APK官网直接下载 · 仅 ARM64 下载