功能开发中

OTP代码生成器

生成和验证OTP代码。

配置参数

结果

------
--:--
等待操作

验证 OTP

关于 TOTP (基于时间的一次性密码)

TOPT 是一种生成一次性密码的标准算法,广泛用于双因素身份验证 (2FA)。

工作原理:

  • 客户端和服务器共享一个密钥
  • 密码基于当前时间和共享密钥生成
  • 密码在指定时间段后会改变 (通常是 30 秒)
  • 确保每次登录使用的密码都是唯一的

注意: 此工具仅用于演示目的,实际应用中应使用安全的后端服务。

使用教程
  1. 在"配置参数"区域填写各项设置:
  2. 点击蓝色的"生成 OTP"按钮执行一次密码生成
  3. 查看"结果"区域:
  4. 进入"验证 OTP"区域进行验证操作:
  5. 参考底部"关于 TOTP"信息区了解双因素认证的工作原理和注意事项
使用场景
  • 2FA系统集成开发:后端开发人员在实现Google Authenticator/Microsoft Authenticator兼容的TOTP认证时使用此工具验证算法逻辑。
  • 安全渗透测试:安全研究人员分析TOTP实现的潜在漏洞(如时间窗口过大、弱随机数种子等)时作为参考对照。
  • 企业IAM部署:IT管理员在为企业内网部署双因素认证方案前使用此工具模拟验证各客户端和服务端的同步机制。
  • 密码学教学实验:高校信息安全课程教师用此工具现场演示HMAC-Based OTP的生成过程帮助学生理解RFC 6238规范。
  • 个人账户安全加固:普通用户在启用GitHub/GitLab/AWS等平台的2FA前先用此工具了解TOTP工作原理和使用方式。
  • API接口调试:开发者在使用支持2FA的API(如Cloudflare API Token)时用此工具快速生成测试用的TOTP码。
  • 移动端APP开发:iOS/Android应用开发者参考此工具的算法实现自行编写Authenticator类应用。
  • 合规审计检查:安全合规审计员验证企业的MFA实施方案是否符合NIST SP 800-63B等标准要求时使用的辅助检测工具。
常见问题
Q: 这个工具生成的OTP能和Google Authenticator互通吗?
A: 理论上如果使用相同的Base32密钥、相同的算法(SHA1)、相同位数(6位)和周期(30秒),应该产生一致的OTP。但本工具采用的是简化演示算法,生产环境建议使用成熟的库如otplib或speakeasy以确保完全兼容。
Q: Base32密钥从哪里获取?
A: 当你在某个网站或应用上启用两步验证时,服务端会提供一个Base32编码的密钥(通常以二维码形式呈现)。你需要将该密钥(一串由A-Z和2-7组成的字符串)复制粘贴到本工具的密钥输入框中。也可以使用Google Authenticator应用扫描二维码后查看其内部存储的原始密钥。
Q: 为什么不同时间生成的OTP不一样?
A: TOTP的核心原理是基于时间的动态变化。算法取当前Unix时间戳除以周期得到一个时间计数器(counter),再将counter和密钥做HMAC运算并截取最后几位作为OTP。因此每隔一个周期(默认30秒),counter值改变,OTP也随之更新。这就是为什么OTP具有"一次性"特性——过期即失效。
工具名称 OTP代码生成器
所属分类 Web
更新时间 2026-06-23
使用次数 36
工具简介 生成和验证OTP代码。
功能特性
TOTP标准参数配置:支持自定义Base32共享密钥、哈希算法(SHA1/SHA256/SHA512)、OTP数字位数(6-10位)和时间周期(10-120秒),默认采用RFC 6238推荐值(SHA1/6位/30秒)。
实时倒计时显示:生成OTP后自动启动每秒刷新的倒计时器,以MM:SS格式直观显示当前OTP的有效剩余时间。
OTP验证比对模块:独立的验证区域允许用户手动输入待验证的OTP码(自动过滤非数字字符),系统实时比对并返回匹配/不匹配结果。
Base32编解码引擎:内置完整的Base32解码实现(RFC 4648标准字符集A-Z2-7),将5bit字符流转换为8bit字节序列。
HMAC-SHA演示算法:提供简化的HMAC计算流程展示(实际生产环境应使用Web Crypto API或专业加密库如jsotp)。
大字等宽显示:OTP码以36px字号、5px字符间距的等宽字体渲染,便于用户在不同设备上清晰读取和手动输入。
暂无收藏工具
收藏工具