什么是双因素认证(2FA)?
双因素认证(Two-Factor Authentication,简称 2FA),也叫两步验证,是在"账号 + 密码"之外增加的第二道安全防线。密码是"你知道的东西",而第二个因素通常是"你拥有的东西"——比如手机上的验证器应用生成的动态验证码。即使密码被泄露、被撞库或被钓鱼,攻击者没有你的验证设备,依然无法登录你的账号。
目前最主流的 2FA 方式是 TOTP(Time-based One-Time Password,基于时间的一次性密码)。开启两步验证时,网站会给你一串密钥(通常以二维码或 16~32 位字母数字的形式出现),验证器保存这串密钥后,每 30 秒生成一个新的 6 位验证码。Google Authenticator、Microsoft Authenticator、1Password 以及本工具,用的都是同一个开放标准(RFC 6238),因此可以互相替代。
根据微软和谷歌公开的安全研究,开启两步验证可以阻止超过 99% 的自动化账号攻击。如果你只打算为账号安全做一件事,那就是给重要账号开启 2FA。
TOTP 验证码是如何生成的?
TOTP 的原理并不神秘,它只依赖两个输入:你的密钥和当前时间。算法将当前的 Unix 时间戳除以 30 得到一个"时间窗口"计数,再用密钥对这个计数做 HMAC-SHA1 运算,从结果中截取出 6 位数字——这就是你看到的验证码。
这套设计有几个巧妙之处:
- 无需联网通信:网站服务器和你的验证器各自独立计算,只要双方时间一致、密钥相同,算出的验证码就一致。这也是为什么本工具可以完全在浏览器本地运行。
- 验证码 30 秒失效:时间窗口每 30 秒推进一次,旧验证码立刻作废,即使被人偷看到一个验证码,也几乎来不及利用。
- 不可逆推:HMAC 是单向运算,攻击者无法从若干个验证码反推出你的密钥。
正因为验证码由时间参与计算,设备时间不准是验证码错误最常见的原因——差 30 秒就会算出完全不同的结果。遇到"验证码总是不对",先检查设备时间是否开启了自动同步。
如何使用本工具
- 获取密钥:在目标网站(如 Google、GitHub)的安全设置中开启两步验证,选择"验证器应用"方式。网站会展示一个二维码,二维码下方通常有"无法扫码?"或"手动输入"选项,点开即可看到形如
67A36O5ATRYFEVUG的密钥串。 - 输入密钥:把密钥粘贴到上方输入框,点击"点击获取验证码"。工具会立即在你的浏览器本地算出当前 6 位验证码,并显示剩余有效时间。
- 回填验证:把 6 位验证码填回网站完成绑定。之后每次登录需要验证码时,回到本页输入同一串密钥即可。
- (可选)生成二维码:点击"生成二维码"可以把密钥转成标准的
otpauth://二维码,用手机上的 Google Authenticator 等应用扫描,即可把同一个账号同时添加到手机——相当于给自己留一个备份。
提示:请务必自行妥善保存密钥串或网站提供的恢复代码。本工具不存储、不上传你的密钥,关闭页面后不会留下任何数据。
使用网页版验证器的安全建议
- 适合的场景:手机不在身边、手机损坏或丢失后临时登录、在电脑上频繁登录需要 2FA 的网站、开发和测试 TOTP 集成。
- 密钥即账号:任何拿到密钥串的人都能生成你的验证码。不要把密钥发到聊天工具、贴到公共笔记或截图分享。
- 推荐离线保存:把密钥和网站提供的一次性恢复代码抄写在纸上,或保存在加密的密码管理器中,与密码分开存放。
- 公用电脑慎用:在网吧、公司公用电脑等不受你控制的设备上输入密钥前,请确认环境可信。本工具不存储密钥,但无法防御设备本身已被植入的键盘记录器。
- 高价值账号建议多重备份:邮箱、云盘、交易所等核心账号,建议同时在手机验证器中保存一份密钥,避免单点故障。