avatar

齐远航

更新:2026-07-16

10843 浏览, 5 min 阅读

一名用户正在新设备上登录账户,或者准备确认一笔高额交易。即使他输入了正确密码,系统仍然无法确定操作人究竟是账户本人,还是获取了泄露密码的攻击者。尤其当用户重复使用密码、设备发生变化或登录地点异常时,仅靠静态密码很难可靠地保护账户。

因此,许多企业会在关键操作前增加一步验证,要求用户输入 OTP(One-Time Password,一次性密码)。 这组验证码只能使用一次,并会在较短时间内失效,可以降低被盗密码直接用于登录、支付或修改账户信息的风险。

但对企业而言,OTP 既关系到账户安全,也直接影响用户转化。如果验证码延迟送达、被运营商或邮箱过滤,或者有效期、重发和备用渠道规则设计不合理,用户可能无法完成注册、登录或支付。本文将详细介绍 OTP 的产生方式、主要类型和工作原理,并说明企业为什么需要 OTP、如何选择服务商,以及如何通过控制台配置完整的 OTP 认证流程。

OTP 是什么?

OTP 的定义以及产生方式

定义

OTP 是一种为单次身份验证尝试或交易生成的临时凭证。用户成功使用后、超过有效期后,或系统生成新的验证码后,原 OTP 通常会失效。用户在银行短信、网站登录或 App 注册页面中看到的 OTP CodeOTP 验证码,一般都指这种一次性凭证。

OTP 的产生方式会影响验证码如何变化、怎样发送,以及适合应用在哪些验证场景。根据验证码是由业务服务器直接创建,还是由服务器与用户设备按照相同规则分别计算,OTP 主要可以分为以下两种产生方式:

  • 共享密钥算法生成:服务器与用户设备预先保存相同的共享密钥,并根据递增计数器或当前时间窗口分别计算出相同的验证码。HOTP 和 TOTP 都属于这种产生方式,常见于硬件令牌和身份验证器 App。
  • 服务器随机生成:服务器使用安全随机数生成器创建验证码,再通过短信、邮件、语音、WhatsApp 或应用内消息发送给用户。这种方式常用于注册、登录、支付确认和密码重置等业务场景。

无论采用哪种方式,企业都应确保验证码不可预测、成功使用后立即失效,并设置合理的有效期、错误尝试上限、重发频率限制和异常请求监控。OTP 不应以明文形式长期保存在应用日志中,API 密钥和共享密钥也只能存放在受保护的服务器端。

OTP 有哪些类型?

OTP 可以从两个维度理解:一是验证码如何生成,二是验证码通过什么渠道传输或呈现。HOTP 和 TOTP 属于生成机制;短信 OTP、语音 OTP、邮件 OTP、WhatsApp OTP 和应用内推送则属于传输与呈现渠道。两种维度可以组合使用,而不是互相排斥。

展现otp的类型的图片

HOTP vs TOTP

HOTP 和 TOTP 都基于共享密钥生成验证码。HOTP 遵循 RFC 4226, TOTP 则按照 RFC 6238 在 HOTP 模型中加入时间窗口。

对比项 HOTP TOTP
全称 HMAC-Based One-Time Password,基于 HMAC 的一次性密码 Time-Based One-Time Password,基于时间的一次性密码
变化依据 共享密钥与递增计数器 共享密钥与当前时间窗口
失效方式 使用后、计数器推进后,或被服务器策略拒绝后失效 时间窗口结束后自动轮换,常见周期为 30—90 秒
优势 不依赖设备时钟;适合离线硬件令牌 验证码自动快速过期,可缩短重放窗口
注意事项 客户端和服务器的计数器可能失去同步 依赖时钟同步;仍可能受到实时钓鱼攻击
典型场景 硬件令牌、离线设备及计数器可同步的系统 Google Authenticator 等认证器 App、账号登录和高风险操作验证

TOTP 并不意味着系统一定比 HOTP 更安全。最终安全性还取决于共享密钥保护、错误尝试限制、设备安全、账号恢复机制和防钓鱼设计。TOTP 可以减少运营商、短信和邮箱传输环节的部分风险,但用户仍可能把有效验证码输入伪造页面。

短信、语音、邮件、WhatsApp 与应用内推送 OTP

服务器生成的 OTP 可以通过不同渠道触达用户。企业应根据目标国家、用户设备、操作风险、发送成本和渠道稳定性设置主通道与备用通道,不应简单地认为渠道越多越好。

渠道 主要优势 适合场景
短信 OTP 覆盖范围广,无需安装额外应用,用户理解和使用门槛较低。 消费者注册、登录、支付确认、密码重置及手机号码验证。
语音 OTP 可以覆盖无法正常接收或查看短信的用户,并有助于满足部分无障碍需求。 短信发送失败后的备用验证、无障碍场景及特定高价值业务流程。
邮件 OTP 无需用户提供手机号码,发送成本相对较低,适合网页端和跨设备验证。 邮箱地址确认、网页注册、低至中风险验证及备用验证渠道。
WhatsApp OTP 在 WhatsApp 使用率较高的市场中触达体验良好,并支持使用认证模板。 WhatsApp 普及率较高的海外市场,以及国际短信送达不稳定时的备用验证。
应用内推送 / App 可以在已绑定设备上呈现验证码或发送登录确认请求,并减少短信发送成本。 已有 App 用户的设备确认、登录保护、高频验证及敏感操作授权。

根据最新版 NIST SP 800-63B 数字身份指南, 通过公共电话网络发送的短信或语音带外认证属于受限认证方式,而且带外认证本身不具备抗钓鱼能力。因此,高风险账号不应只依赖短信 OTP,还应提供认证器、受信设备、通行密钥等更强的验证方式。

应用内推送不一定等于 OTP

如果 App 直接显示一组一次性验证码,它属于 OTP 的一种呈现方式;如果 App 只要求用户点击“允许登录”或核对数字后确认,则更准确地说是推送认证。后者可以和 OTP 一起纳入多因素认证流程,但不应与传统 OTP Code 混为一谈。

如果企业主要使用手机验证码,可以进一步参考 企业短信验证码发送指南, 了解短信 OTP 的发送、失败排查与平台选择方法。

OTP 的工作原理

从用户发起操作到系统完成验证,一个完整的 OTP 流程通常包含以下六个步骤:

  1. 触发验证:用户注册、登录、找回密码、确认支付或执行敏感操作,业务系统向 OTP 服务发起验证请求。
  2. 生成验证码:服务器生成不可预测的随机验证码,或由认证器根据共享密钥和时间/计数器计算 HOTP、TOTP。
  3. 发送或呈现:验证码通过短信、语音、邮件、WhatsApp、认证器 App 或应用内消息触达用户。
  4. 用户提交:用户在网站、App 或业务系统中输入收到的 OTP;推送认证则由用户在已绑定设备上确认。
  5. 服务端校验:系统检查验证码是否匹配、是否过期、是否已经使用,以及失败次数是否超过限制。
  6. 完成并记录:验证成功后立即使 OTP 失效,并记录发送、送达、验证结果和风险信号;失败时按照规则重试、切换渠道或终止流程。

例如,用户登录时收到短信“您的验证码为 482731,5 分钟内有效,请勿向他人透露”。用户提交后,服务器验证该验证码与原请求、手机号和有效期是否匹配。验证码一旦成功使用,即使仍在 5 分钟窗口内也不能再次使用。

安全的 OTP 流程至少应包含:

  • 至少 6 位、不可预测并且只允许成功使用一次的验证码。
  • 与业务风险相匹配的有效期,不盲目延长验证码可用时间。
  • 手机号、账号、IP 和设备等维度的发送及验证频率限制。
  • 重发后旧验证码如何处理的明确规则,避免多个验证码同时有效。
  • 对 SIM 变更、号码迁移、异常国家请求和批量发送峰值进行监控。
  • 在短信或主通道失效时提供受控的备用验证方式。

企业为什么要使用 OTP

OTP 的价值不只是增强登录安全。它可以帮助企业确认用户是否控制所提交的手机号、邮箱或设备,并在关键操作发生前增加一道短时验证步骤。合理部署 OTP 验证流程,通常可以在账户安全、用户转化、渠道验证和风险管理等方面为企业带来以下价值:

otp对于企业的6个价值, 为什么要使用otp
  • 降低账号被盗风险:即使静态密码泄露,攻击者仍需通过新的 OTP 验证。OTP 不能消除钓鱼,但能减少单凭被盗密码直接登录的风险。
  • 验证手机号、邮箱或设备归属:在注册和资料变更时确认用户能够访问所提交的通信渠道,减少无效或错误账号数据。
  • 保护高风险操作:支付确认、密码重置、账号恢复、管理员操作和个人信息修改可以要求重新验证。
  • 兼顾覆盖和使用门槛:短信和邮件无需用户预先安装认证器,适合快速覆盖大量消费者;App 和认证器则可服务更高风险或高频场景。
  • 提高关键流程完成率:通过多渠道备用、合理的有效期和重试规则,企业可以减少因验证码延迟或未送达造成的注册、登录和支付流失。
  • 支持风控与运营分析:发送状态、验证转化率、失败原因、重发率和异常流量记录可用于定位渠道问题及识别滥用行为。

企业如何选择 OTP 服务商

选择 OTP 服务商时,不能只比较单条短信价格或平台宣传的覆盖国家数量。企业应以真实用户所在国家、主要验证场景、峰值发送量和风险等级进行测试,并同时评估发送、验证、风控和数据分析能力。

  • 国家与渠道覆盖:检查服务商是否支持短信、语音、邮件、WhatsApp 和 App 等验证渠道,并确认其在目标国家和地区的运营商覆盖、号码格式、Sender ID、语言及模板要求。
  • 送达速度与验证成功率:除了发送成功率,还应关注验证码的最终送达率、端到端延迟、验证转化率和重发率,并使用目标市场的真实号码进行测试。
  • 发送与验证 API:确认服务商同时提供 OTP 发送、验证码校验、状态回执、错误码和幂等控制,并确保后端无需在应用日志中存储验证码、API 密钥等敏感信息。
  • 备用渠道策略:明确短信何时重试、什么情况下切换到 WhatsApp、语音或邮件,以及达到多少次失败后停止流程,避免重复发送和成本失控。
  • 防刷与反欺诈:检查是否支持手机号、账号、IP、设备和国家等维度的频率限制,以及短信轰炸、国际收益分成欺诈、异常发送峰值和高风险号码检测。
  • 模板与本地化管理:审查模板的创建、编辑、审批、版本管理、本地化和停用流程,并确认其支持多语言、签名、变量及不同渠道的内容适配。
  • 数据报告与问题排查:确认企业能否按国家、渠道和模板查看发送量、送达率、验证转化率、失败原因、重发率、异常流量和消息成本。
  • 安全、合规与技术支持:评估服务商的密钥管理、数据保护、审计日志和服务可用性,并要求其提供与目标行业和地区相关的合规材料及 SLA。
  • 总体使用成本:除消息单价外,还应计算失败重试、备用渠道、号码或模板费用,以及接口被恶意调用可能产生的额外成本。

如需横向比较不同方案,可查看 OTP 验证码服务商选择指南

EngageLab OTP 适合什么场景?

当企业需要在一个平台中管理短信、邮件、WhatsApp 和语音 OTP,并配置模板、重试和备用渠道规则,同时查看不同国家和渠道的发送分析时,可以考虑 EngageLab OTP。 如果业务只需要单一国家、低发送量的短信接口,可以同时评估更轻量的短信 API 方案。

【步骤教学】如何配置 OTP 认证

以下以 EngageLab 控制台为例,说明从创建模板到接入发送、验证接口的基本流程。具体字段名称可能因账号权限和控制台版本而有所变化,但整体顺序一致:创建模板、配置渠道、通过审核、创建 API 密钥、连接发送与验证流程,最后完成上线测试。

1 创建 OTP 模板

登录 EngageLab 控制台,进入 OTP,打开 模板管理,然后点击 创建模板。填写模板名称、模板 ID、签名和发送策略,并选择首先测试的主渠道,例如短信主通道。

在EngageLab控制台创建OTP模板并设置模板名称、签名和发送策略

模板名称应便于识别和审计。例如,login_otp_sms_primarytest_template 更能说明用途。模板 ID 在创建后应保持稳定,避免生产环境因配置变化调用错误模板。

在消息内容中插入验证码变量(如 {code}),明确有效期和“请勿向他人透露”等提醒,并针对不同语言和渠道调整文案。不要在同一条消息中加入无关营销内容,以免降低用户信任或增加运营商过滤风险。

OTP模板消息内容编辑器中的验证码变量和多语言文案配置

2 配置主通道和备用通道

在电话号码渠道中先配置主通道。对于多数注册和登录流程,可以先测试短信;如果重点市场存在短信延迟或运营商过滤,再根据实际需要增加 WhatsApp 或语音备用通道。邮件可用于邮箱验证或部分低至中风险场景。

EngageLab OTP电话号码渠道及短信、WhatsApp和语音备用策略配置

备用通道应按受控规则触发,而不是无限循环发送。企业需要设置等待时间、重试次数、国家限制和风险号码拦截,并明确切换渠道时旧验证码是否立即失效,避免用户同时收到多组可用验证码。

3 提交模板并确认审核状态

模板内容和渠道规则完成后,点击 创建并提交审核。在用于生产环境之前,返回模板管理页面确认状态已经通过,并记录已批准的模板 ID。未经审核或临时测试模板不应直接用于正式用户流量。

EngageLab模板管理页面显示审核通过的OTP模板

4 创建 API 密钥并连接发送、验证流程

在控制台中创建 API 密钥,并只把密钥存储在服务器端或受保护的密钥管理系统中。不要把密钥写入前端 JavaScript、移动客户端、截图或普通日志。

  • 发送:当用户触发注册、登录、密码重置或交易确认时,由后端调用 OTP 发送 API,并保存返回的请求标识符。
  • 验证:用户提交验证码后,由后端调用 OTP 验证接口,检查验证码与原请求是否匹配、是否过期以及是否已经使用。
  • 放行:只有在验证成功后才继续受保护操作;验证失败时返回通用提示,避免向攻击者泄露过多账号状态。

实施时可参考官方文档: OTP 发送 APIOTP 验证 API

5 完成上线前测试和监控

在预发布环境中测试完整流程:触发 OTP、确认消息到达、输入正确验证码、检查业务状态更新,并测试过期验证码、错误验证码、重复使用、连续失败、频繁重发和备用渠道切换。

上线前还应在消息分析中查看发送量、送达量、验证转化率、失败原因和各国家、渠道的成本。不要只看 API 返回“发送成功”,因为这不一定代表用户已经收到并完成验证。

OTP消息分析仪表板中的发送量、送达率、验证结果和渠道成本

上线前检查清单:

  • 模板已经审核通过,生产环境使用稳定的模板 ID。
  • API 密钥只存放在服务器端,并区分测试与生产环境。
  • 已经配置有效期、重发限制、错误尝试限制和旧验证码失效规则。
  • 重点国家和运营商已经完成真实号码测试。
  • 主通道失败时的备用渠道、停止条件和成本上限明确。
  • 已经监控送达率、验证转化率、失败原因、成本和异常发送峰值。

OTP 一次性密码常见问题

OTP Code 是什么?OTP 是什么意思?

OTP 是 One-Time Password 的缩写,意思是一次性密码。OTP Code 就是一次性验证码,通常是一组短时有效的数字或字母,只能用于一次登录、交易或身份验证请求。

银行短信中的 OTP 是什么?

银行 OTP 通常用于确认登录、转账、在线支付或资料变更是否由用户本人发起。验证码只应用于对应的银行页面或官方 App,不应通过电话、聊天工具或邮件提供给他人。若用户没有发起相关操作,应立即停止并通过银行官方渠道核查账号状态。

OTP 和普通验证码有什么区别?

“验证码”是更宽泛的中文表达,可能指短信码、邮件码、图形验证码或人机验证。OTP 强调验证码只能使用一次并在短时间内失效。短信验证码和邮件验证码如果具备一次性、短时有效的特点,就可以属于 OTP。

OTP 和 MFA、2FA 是一样的吗?

不一样。OTP 是一种一次性凭证,MFA 和 2FA 是组合两个或更多认证因素的整体方案。OTP 可以成为 MFA 或 2FA 的一部分,但只使用一个 OTP 并不会自动使流程成为多因素认证。

TOTP 和 HOTP 有什么区别?

TOTP 根据共享密钥和当前时间窗口生成验证码,常见于认证器 App;HOTP 根据共享密钥和递增计数器生成验证码,常见于硬件令牌或离线流程。TOTP 会随时间自动轮换,HOTP 则随计数器推进而变化。

OTP 安全吗?

OTP 通常比只使用静态密码更安全,但它不能阻止所有攻击。短信可能受到 SIM 卡交换、号码迁移和设备恶意软件影响,TOTP 也可能被实时钓鱼窃取。企业应结合短有效期、错误次数限制、异常检测、设备检查,以及认证器、通行密钥等更强方式保护高风险账号。

OTP 的有效期应该设置多长?

TOTP 常见轮换周期为 30—90 秒,短信、邮件等渠道下发型 OTP 常使用 1—10 分钟的有效期。具体设置应综合操作风险、消息延迟、用户输入时间和重发行为。高风险操作通常应使用更短窗口,但不能短到让正常用户频繁失败。

为什么收不到 OTP 验证码?

常见原因包括号码或国家区号错误、运营商过滤或延迟、手机信号和漫游问题、邮箱进入垃圾邮件、模板未通过审核、目标国家未开通、用户请求过于频繁,以及企业设置的风控限制。企业应先查看 API 返回结果和渠道状态,再检查模板、号码格式、发送频率和运营商回执,并在符合规则时提供语音、邮件或 WhatsApp 等备用渠道。

短信 OTP 和邮件 OTP 哪个更好?

没有适用于所有场景的答案。短信覆盖广、用户熟悉,但按条计费并存在运营商和 SIM 卡风险;邮件成本较低且不需要手机号,但可能延迟或进入垃圾邮件。企业应根据风险等级、目标用户和渠道稳定性选择主通道,并为关键流程准备备用方案。

OTP 可以告诉客服、银行员工或其他人吗?

不可以。OTP 应只输入用户主动打开的官方网站、官方 App 或可信业务页面。正规客服、银行工作人员和平台员工通常不需要用户通过电话、短信或聊天工具口头提供验证码。收到非本人请求的 OTP 时,不要点击消息中的可疑链接,也不要向任何人透露验证码。

结论

OTP 是一种只能使用一次、并在短时间内失效的验证凭证。企业可以按照生成机制选择 HOTP、TOTP 或服务器随机验证码,再通过短信、语音、邮件、WhatsApp、认证器 App 或应用内推送触达用户。真正可靠的 OTP 系统不仅要“把验证码发出去”,还要同时管理验证、有效期、重发、备用渠道、频率限制、反欺诈和数据监控。

如果企业需要面向多个国家和地区建立短信、邮件、WhatsApp 与语音 OTP 流程,可以使用 EngageLab OTP 配置模板、发送及验证 API、备用渠道规则和消息分析,并先用重点国家的真实用户流程完成小规模测试,再逐步扩大到生产流量。