TOTP 两步验证怎么用:原理、迁移与安全边界

2026-10-19 · 更新于 2026-10-19 ·

TOTP 两步验证怎么用:原理、迁移与安全边界

很多登录页在密码之后还有一步:打开手机、找到条目、抄六位数字,等验证码刷新。这个六位数字通常就是 TOTP(基于时间的一次性密码)。它比短信验证码更可靠,但也常被误解成「绝对安全」。

这篇文章讲三件事:TOTP 到底算的是什么、把它放进密码管理器值不值得,以及迁移时最容易踩的坑。

TOTP 到底算的是什么

TOTP 由 RFC 6238 定义。服务端在你绑定两步验证时生成一个共享密钥,并把它交给你(通常通过二维码或一串文本)。之后每次登录:

  1. 客户端和服务端都拿这个共享密钥;
  2. 加上当前时间窗口(默认 30 秒)作为计数器;
  3. 做一次 HMAC 运算,截取并压缩成 6 位数字;
  4. 服务端在允许的时间漂移内比对结果。

所以验证码不是随机数,而是密钥 + 时间的确定性结果。它不需要联网,也不依赖短信网络;只要两边时钟大致一致,就能算出一致的码。

TOTP、短信验证码和 Passkey 的区别

因此,TOTP 是今天非常实用的第二因素,但不是终点。高价值账户如果支持 Passkey 或硬件密钥,应优先使用。

把 TOTP 放进密码管理器:方便与风险

把 TOTP 和密码放在同一条目里,最大的好处是登录链路不中断:填充密码后,同一处就能拿到当前验证码,不用切 App。对开发者、测试和每天登录大量后台的人来说,这个体验提升很实在。

但要把风险说清楚:

账号密码管理助手把 TOTP 密钥作为独立字段,与用户名、密码、网址、备注一起逐字段加密;验证码在本地按 RFC 6238 生成,登录到第二步时可直接填入。它适合「方便地管理多套日常账号」,但不建议把它当作银行或支付类凭据的唯一保险箱。

迁移 TOTP 的步骤

从手机验证器迁到另一个工具,通常有三种方式:

  1. 扫码迁移:新工具扫描旧工具或服务端提供的二维码;
  2. 手动输入密钥:输入 Base32 密钥、账号名、 issuer 与算法参数;
  3. 导出/导入:部分验证器支持加密导出,注意导出文件本身就是高敏感数据。

迁移时建议按这个顺序:

不要把 TOTP 二维码、密钥截图或恢复码发到聊天工具里。它们和密码一样,是可直接生成验证码的凭据。

浏览器扩展里的 TOTP 如何工作

以账号密码管理助手为例:

需要提醒的是:浏览器扩展运行在你的浏览器里,不能防御已被入侵的操作系统、恶意扩展或正在共享的屏幕。开启屏幕共享或远程协助时,先确认验证码页面不在共享范围内。

检查表

TOTP 的价值在于「多一个独立因素」,而不是「多一道绝对防线」。理解它的计算方式与信任边界,才能把便利留在工作流里,把风险留在可控范围内。

想了解本地加密与密钥管理的实现细节,可以读Web Crypto 加密实践;如果你的日常登录需要内置 TOTP 与一键填充,可以试试账号密码管理助手。