身份验证器验证码无效?iPhone 上的 6 个解决方法
作者:Novaz 团队 · 更新于 2026年10月29日
Novaz 操作步骤已在 1.0.5 版本中核实
本文译自英文指南。在服务的网站上,按钮和菜单的中文名称可能略有不同。
本页内容
身份验证器 App 生成的是基于时间的一次性密码(TOTP)。每个验证码都由两样东西算出:你和网站共享的设置密钥,以及当前时间。只要其中一样与网站预期的不一致,验证码就会被判为无效,哪怕它看起来毫无问题。下面的方法适用于任何身份验证器 App。Authenticator App - Novaz 有不同之处时,我们会特别说明。
1. iPhone 的时钟不准
大多数网站只接受当前的验证码及其前后各一个,所以时钟只要偏差 30 秒或更多,验证码就可能失效。这种情况常出现在手动设置时间后、旅行途中,或电池彻底耗尽之后。
在 iPhone 上修复: 打开 设置 › 通用 › 日期与时间,打开自动设置。
在 Novaz 中: App 会在你打开它时检查时钟,最多每 10 分钟一次。它通过向 apple.com 发送一个空请求来读取时间。如果时钟偏差 15 秒或更多,Novaz 会显示一条横幅“设备时钟偏差 n 秒”,并附有同步按钮。同步会按偏差修正 Novaz 自己生成的验证码。在“设置”的时间部分,时钟偏差会显示“已同步”,或在偏差达到 15 秒及以上时显示偏差了多少秒。

2. 你用的是另一个账号的验证码
如果你在同一服务上有两个账号,比如个人和工作用的两个 Google 账号,复制验证码前先看看服务名称下方的账号名。在 App 里搜索你登录时用的电子邮件地址,通常就能找到对的那个。
3. 2FA 重新设置过,旧密钥已失效
每次在网站上设置身份验证器 App,网站都会生成一个新的设置密钥,并且通常不再接受旧密钥生成的验证码。如果你(或帮你的人)关闭后又开启了 2FA,或者重新开始了身份验证器设置,App 里的旧条目生成的验证码就对不上了。删除它(在 Novaz 中:打开该账号,点按移除账号),再用新的二维码重新添加账号。
从较早的 Novaz 备份文件恢复账号时也会出现同样的情况。备份文件保存的是制作当时每个账号的密钥,所以之后重新设置过的账号,恢复回来的仍是已失效的旧密钥。把它移除,再从网站重新添加。
4. 输入时验证码过期了
大多数验证码的有效期是 30 秒。如果快到期时才开始输入,验证码可能在提交前就过期了。等新的验证码出现,或者直接复制粘贴(在 Novaz 中:长按该账号,然后选择复制验证码)。
在 Novaz 中: 验证码在最后 5 秒会变成红色。复制的验证码过期后会从剪贴板中移除。
5. 网站使用了非标准设置
几乎所有网站都使用每 30 秒变化一次、用 SHA-1 生成的 6 位验证码。少数网站使用 8 位、60 秒间隔或 SHA-256。二维码会把这些设置一并带过来。手动输入的设置密钥通常不带这些设置,App 只能使用默认值,生成的验证码就对不上。
解决方法: 用二维码添加账号,而不是输入文本密钥。
在 Novaz 中: 手动输入的密钥一律使用 6 位、30 秒和 SHA-1。通过二维码添加的账号可以使用 6 到 8 位、1 到 300 秒,以及 SHA-1、SHA-256 或 SHA-512。点按某个账号,即可在详情下查看它的设置(如果打开了点按前隐藏验证码,第一次点按只会显示验证码)。想在添加之前查看二维码里包含的设置,可以使用 2FA 二维码解码器。
6. 网站使用的验证码类型 Novaz 无法生成
Steam Guard 使用自己的格式,还有少数服务使用基于计数器的验证码(HOTP),它在每次请求时变化,而不是按计时器变化。有些身份验证器 App 支持 HOTP。Novaz 只生成基于时间的验证码,所以请使用该服务自己的 App 或其他方式。
还是无法登录?
- 使用开启 2FA 时网站给你的备用码,然后重新设置 2FA。
- 如果没有备用码,就走网站的账号恢复流程。Google、Microsoft 和 GitHub 的具体做法,请参见装有身份验证器 App 的手机丢了?
- 有人就这个问题联系你时,绝不要把验证码或设置密钥告诉对方。真正的客服团队不会索要这些信息。