OTP 是什么?一次性密码、动态验证码和 TOTP 的关系详解

最后更新:2026/9/12

OTP(One-Time Password)是一次性密码,中文也叫动态口令,或叫动态验证码。你登录银行收到的短信验证码、校园网和公司 VPN 要求输入的 6 位数字、谷歌验证器里每 30 秒变一次的码,都属于 OTP。

固定密码一旦泄露,别人可以反复使用。OTP 则不同:每次只生成一个新码,用完作废,过期也作废。就算黑客拿到了你的密码,只要拿不到当下的动态码,仍然登不进账号。

OTP 的两条生成路线

OTP 不是一个具体产品,而是一类验证码的统称。同样叫一次性密码,码的来源分两条路线。

第一条:服务器生成,通过渠道发给你。 短信验证码、邮件验证码、语音播报的验证码都属于这类。服务器随机生成一个码,通过短信或邮件发送给你。码不在你手里,你只是接收它。

第二条:在设备本地算出来。 硬件令牌和验证器 App 属于这类。绑定账号时,平台给你一个二维码,里面是一段共享密钥。你的设备保存这段密钥,用它和当前时间做运算,本地算出验证码。全程不需要联网收码。

对比 服务器下发(短信/邮件) 本地生成(TOTP 验证器)
码的来源 服务器随机生成,通过渠道发送 设备用共享密钥和当前时间计算
是否联网 依赖运营商或邮件通道 不需要,断网也能出码
有效期 通常 5-10 分钟 通常 30 秒
典型场景 银行转账、国内 App 登录 GitHub、OpenAI、Shopify、VPN

两条路线的核心区别是:码是发给你的还是你自己算出来的。这决定了它们对网络的依赖、被拦截的风险,以及换设备时的迁移成本。

国内用短信,海外用 TOTP

在国内,短信验证码仍然是 OTP 的主流形式。银行转账、支付宝支付、微信登录,都是服务器生成一个码,通过短信发给你。国内运营商通道稳定,到达率高,用户体验也熟悉。大部分场景下短信已经够用。

但在海外平台上,TOTP(Time-based One-Time Password,基于时间的一次性密码)才是主流选择。原因有两个:

  1. 跨国短信贵且不可靠。延迟、丢失、被拦截都经常发生。TOTP 不依赖运营商,不联网也能出码。
  2. 平台不掌握你的手机号。海外账号体系通常以邮箱为主,没有手机号可以发短信。验证器 App 是唯一可行的第二因素方案。

谷歌身份验证器、Microsoft Authenticator、free2fa二次验证码小程序,都是这类 TOTP 验证器。GitHub、OpenAI、Shopify 这些平台的安全设置里看到“验证器应用”选项,指的就是 TOTP。

你在什么场景会用到 OTP

注册 OpenAI、Google 等海外平台。 注册完成后,平台会要求开启两步验证。选项里通常有验证器应用。绑定后,每次登录要输入 TOTP 动态码。安卓手机没有谷歌服务框架(GMS)时,装不上谷歌验证器,需要另找一个能直接用的 OTP 工具。

跨境电商店铺的安全防护。 Shopify、亚马逊卖家的店铺账号背后挂着资金和客户数据。平台普遍要求开启 2FA。手机丢失、误删应用、员工离职都可能导致密钥丢失,账号可能被锁。管理多个平台的验证密钥时,能备份、能找回的 OTP 工具是刚需。

高校和企业的内网 VPN。 登录校园网或公司 VPN 时,系统要求输入动态口令。为了一个 6 位码专门下载一个几百兆的客户端 App,很多人不愿意。在电脑上登录时,还要掏出手机看码再手动输入,效率不高。

这三个场景的共同点是:平台要你用一个 OTP 工具自己生成验证码,而不是靠短信收。需要选一个 TOTP 验证器时,推荐微信小程序 free2fa二次验证码

  1. 免安装免下载,微信里打开就用,不用额外下载 App
  2. 密钥数据高强度加密后云端备份,换手机不丢
  3. 自带数据回收站,误删也能随时找回
  4. 电脑版微信也能打开,验证码支持点击复制,不用掏手机
  5. 支持批量导入谷歌验证器的密钥数据,老用户可以无缝迁移

free2fa二次验证码小程序首页,密钥已云端备份

账号安全建议

OTP 是一次性密码的统称,短信验证码和 TOTP 动态验证码都属于 OTP。国内日常场景用短信就够了,需要对接 GitHub、OpenAI 这类海外平台时,推荐微信小程序 free2fa二次验证码,免安装、云端备份、不怕丢。

free2fa二次验证码小程序码

参考资料

  1. RFC 4226: HMAC-Based One-Time Password Algorithm (HOTP),https://tools.ietf.org/html/rfc4226
Free2FA 二次验证码微信小程序码

在微信中打开 Free2FA 小程序

微信扫码即可使用,无需下载 App

更多打开方式 →