一句话回答: 一次性验证码(OTP,One-Time Password)是一串只能用一次、很快过期的临时口令,用来在密码之外多加一道「证明是你本人」的关卡。它可以通过短信、验证器 App、邮件或电话送达,核心就两条:用一次即作废、几分钟内失效。

几乎每个人都输过 OTP:登录时收到的那串六位数字、转账前要确认的那条短信码、开启新设备时验证器 App 里跳动的数字。它们看着普通,却是今天在线账号最常见的第二道防线。这篇讲清它到底是什么、有哪几种、怎么运作,以及它能防住什么、防不住什么。
一、OTP 到底是什么
OTP 是 One-Time Password 的缩写,直译「一次性口令」。和你自己设的固定密码不同,它有两个硬性特征:
- 一次性:用过就作废,同一个码不能第二次登录。
- 短时效:通常几十秒到几分钟就过期,过期就得重新申请。
正因为这两点,就算一串码被别人看到或截获,它能被滥用的窗口也极小——这正是 OTP 比静态密码更「抗偷」的原因。
二、OTP 有哪些类型
| 类型 | 怎么送达 | 特点 |
|---|---|---|
| 短信 OTP | 一条带码的短信 | 最普及,靠手机号 |
| 验证器 App(TOTP) | 手机本地生成 | 不联网、每 30 秒一换 |
| 邮件 OTP | 一封带码的邮件 | 不挑运营商 |
| 语音 OTP | 电话朗读 | 固话也能用 |
| HOTP(计数式) | 按次递增生成 | 不依赖时钟 |
最常见的是短信 OTP 和验证器 App 的 TOTP。两者的根本区别在于:短信码由服务器生成、经运营商网络发给你;TOTP 则是手机和服务器各自按时间算出同一个码,从不在网络上传输。
三、OTP 是怎么生成和校验的
对短信/邮件码,服务器随机生成一串数字、记下时间戳,发给你,再在你提交时核对「是不是这串、有没有过期、是不是第一次用」。
对验证器 App,手机和服务器共享一个只在绑定时交换过的密钥种子,之后双方各自把「种子 + 当前时间」算成同一串码。因为算法一致、时间同步,两边得数相同——这也是为什么手机时钟偏了,验证器的码就会对不上。
大多数 OTP 是 6 位数字:一百万种组合,短时效内难以暴力破解,又好读好输。
四、OTP 为什么能提升安全
单靠密码有个致命弱点:密码是静态的,一旦泄露(撞库、钓鱼、数据泄漏),谁拿到都能登。加上 OTP 后,登录需要「你知道的东西(密码)+ 你拥有的东西(收码的手机/App)」两样凑齐——这就是双因子认证(2FA)。
即使攻击者偷到了你的密码,没有你手上那台设备收到的那串一次性码,通常也进不来。这一层,挡住了绝大多数自动化的账号入侵。
五、OTP 的局限
OTP 不是万能的,短信 OTP 尤其有软肋:
结论不是「别用 OTP」,而是:OTP 远胜于只用密码;若要更强,可升级到验证器 App 或抗钓鱼的通行密钥。但无论哪种,都记住一条——验证码只输进你主动打开的官方页面,绝不转发、绝不读给任何人。
六、这对你收码时意味着什么
你收到的绝大多数验证码就是 OTP。用一个真实、在网、你独占的号码或账号来接收,它才稳定可靠。收到没申请的 OTP,要当作有人可能在尝试登录你账号的信号;而任何来电或链接向你索要 OTP 的,几乎都是诈骗。
常见问题
Q:OTP 和验证码是一回事吗? 基本是。日常说的「验证码」大多就是 OTP——一次性、会过期的临时口令。
Q:验证器 App 的码为什么不用联网也能出? 因为它是手机本地用共享种子和当前时间算出来的,不需要服务器实时下发。详见 TOTP vs HOTP。
Q:OTP 能完全防住账号被盗吗? 不能,但能挡住绝大多数。它对付被盗密码非常有效,对精心设计的实时钓鱼则要靠更强的因子来补。
小结
OTP 是一串只能用一次、很快过期的临时口令,配合密码构成双因子认证,大幅提高账号安全。它有短信可被拦截、可被钓鱼的局限,但仍远胜于只用密码;收好、只在官方页面输入、绝不外传,才能发挥它真正的价值。