auth
OTP (一次性密码)
Also known as: 一次性代码, 验证码, OTC
一种短的、单次使用的密码,通常为 4 到 8 位数字,专为单次身份验证尝试生成,用作第二因素或带外确认。
OTP(一次性密码)是一种短的身份验证字符串,仅对单次登录或交易有效。使用后或短时间窗口过期后,无法重新使用。OTP 的设计目的是降低密码重用和凭证拦截的风险:即使 OTP 在传输过程中被捕获,一旦被消费也就失效了。
OTP 主要分为两种类型。HOTP(基于 HMAC 的一次性密码,RFC 4226)从服务器和客户端之间共享的递增计数器生成代码。每次成功登录时计数器递增,因此代码以确定性但不重复的序列生成。TOTP(基于时间的一次性密码,RFC 6238)用当前时间替代计数器,通常分为 30 秒的离散时间窗口。两种方案都使用共享密钥和 HMAC-SHA1(有时是 SHA256 或 SHA512)从底层状态推导出可见数字。
实际中,OTP 可通过多个通道传递:
- SMS:服务器生成随机短代码,通过运营商网络发送,用户将其输入登录表单。这是最常见也是安全性最低的通道。
- 电子邮件:类似于 SMS 但发送到收件箱,速度较慢但安全性略高。
- 身份验证器应用:使用注册时交换的密钥在设备上本地生成 TOTP 代码。
- 推送通知:向已注册设备发送一键确认提示。
- 硬件令牌:专用设备(RSA SecurID、YubiKey)显示或传输代码。
OTP 是 2FA 和升级认证的基础模块。OTP 系统的安全性完全取决于种子材料的保密性和传递通道的完整性——通过 SIM 卡交换后的号码发送的 SMS OTP 几乎无法提供真正的保护。本地生成的 TOTP 代码更强大,因为没有可被拦截的传递通道。
现代网络标准(WebAuthn、passkeys)正逐步取代 OTP,因为 OTP 仍然容易被网络钓鱼:用户可能被诱骗将 OTP 输入假登录页面,攻击者可在有效期内重放它。尽管如此,SMS 或身份验证器应用的 OTP 仍是 2026 年消费者网络上第二因素身份验证的事实标准。
Example
输入我们刚刚发送到您手机的 6 位 OTP 以完成登录。