Elysia Tools

在一个清晰的工作台里浏览工具、案例、可视化和主题指南。

热门分类

专题

语言
ZHESPTRUFRDEEN

Elysia Tools

导航

Security

TOTP / HOTP 离线动态密码生成器

· 最后更新:2026-06-22

从 base32 共享密钥生成 RFC 6238 TOTP(基于时间,6/8 位、30/60 秒步长)与 RFC 4226 HOTP(基于计数器)一次性密码,完全离线,支持 HMAC-SHA1/256/512,并导出 otpauth:// URI 以便导入 Google Authenticator / Authy

详情

这个工具可以帮你完成什么

输入 base32 共享密钥(即 Google Authenticator / Authy 二维码旁显示的那串字符),工具会在本地计算一次性密码——不会向任何服务器发送数据。

支持:

  • TOTP(RFC 6238):基于当前 UNIX 时间与步长(30 秒/60 秒)生成。这是 Google Authenticator 中大多数 2FA 账户显示的码。
  • HOTP(RFC 4226):基于共享计数器生成。
  • HMAC 算法:SHA-1(RFC 默认,几乎所有验证器都使用)、SHA-256、SHA-512。
  • 6 位(默认)或 8 位输出。
  • “显示后续 N 个码”——预览接下来若干个 TOTP 时间窗或 HOTP 计数器,便于测试漂移。
  • 导出 otpauth:// URI(可带 issuer 与账户标签),以便重新导入任意验证器 App。

实现说明:

  • HOTP 使用标准动态截断算法:对 8 字节大端计数器做 HMAC,取最后一字节低 4 位作为偏移,读取 31 位整数,再对 10^digits 取模。
  • TOTP 即 counter = floor(unixTime / step) 的 HOTP。
  • 密钥解码为 RFC 4648 base32(无需填充),会自动忽略空格。

适用场景:验证 2FA 密钥与手机生成的码一致、在登录流程中接入 TOTP 校验、教学 HMAC-OTP,或通过 otpauth:// 把 2FA 账户迁移到新设备。

执行

运行这个工具

填写表单、运行工具,并在同一页面查看结果。

案例

与这个工具匹配的案例

相关内容

继续查看相关工具与专题

由 Elysia Tools 团队编写
代码生成器9

工具使用指南

详细了解工具的适用范围、支持能力及用户案例。

关键事实

分类
Security
输入类型
text, select, number
输出类型
html
案例覆盖
4
API 可用
是

概览

本工具是一个完全离线的 TOTP 和 HOTP 动态密码生成器。只需输入 Base32 格式的共享密钥,即可在本地安全地计算出符合 RFC 6238(基于时间)和 RFC 4226(基于计数器)标准的一次性密码(2FA 验证码),支持自定义 HMAC 算法、位数及步长,并能生成用于导入身份验证器 App 的 otpauth:// 链接。

适用场景

  • 需要验证手机身份验证器(如 Google Authenticator 或 Authy)生成的 2FA 验证码是否与密钥源头一致时。
  • 在开发或测试双因素认证(2FA)登录流程时,需要快速获取当前或后续时间步长的动态验证码。
  • 想要将备份的 Base32 密钥重新转换为 otpauth:// 格式的 URI,以便快速扫码迁移到新的验证器设备。

使用方式

  1. 1用户输入 Base32 编码的共享密钥,工具在本地将其解码为原始字节流,自动忽略空格等干扰字符。
  2. 2根据选择的模式(TOTP 或 HOTP),工具获取当前的 UNIX 时间戳(计算时间步长)或指定的计数器值作为输入。
  3. 3使用选定的 HMAC 算法(SHA-1/SHA-256/SHA-512)对输入进行哈希计算,并通过标准动态截断算法提取出 6 位或 8 位的数字密码。
  4. 4实时渲染出当前验证码、倒计时进度条、后续多个时间窗的预测码,并拼接生成标准的 otpauth:// URI。

常见用途

  • 离线备份与恢复:将手头保存的 Base32 文本密钥转换为 otpauth:// 格式,方便重新扫码导入新手机。
  • 2FA 接口调试:开发人员在对接双因素认证登录接口时,无需频繁查看手机,直接在网页端获取当前及后续的测试验证码。
  • 算法教学与验证:安全研究人员或学生通过调整算法、步长和计数器,直观观察 HMAC-OTP 的动态截断输出结果。

示例

1. 生成标准 6 位 TOTP 动态码

运维工程师

背景

运维工程师在配置服务器 SSH 双因素认证时,获得了一个 Base32 格式的备份密钥,需要验证该密钥是否能正确生成与手机一致的验证码。

问题

快速获取当前 30 秒时间步长下的 6 位 TOTP 验证码,并生成导入链接。

如何使用

在“共享密钥”输入框中粘贴密钥 `JBSWY3DPEHPK3PXP`,模式选择 `TOTP`,算法选择 `SHA-1`,位数选择 `6`,步长选择 `30`,并填写签发方为 `Acme`,账户为 `[email protected]`。

secret: "JBSWY3DPEHPK3PXP", mode: "totp", algorithm: "sha1", digits: "6", period: "30", issuer: "Acme", account: "[email protected]"

结果

页面立即显示当前的 6 位动态验证码、倒计时圆环、后续 5 个时间段的预测码,并生成了用于导入的 otpauth:// 链接。

2. 基于计数器的 HOTP 验证码生成

安全测试员

背景

测试员正在评估一个使用 HOTP(基于计数器)协议的旧版企业登录网关,需要手动模拟计数器递增时的验证码变化。

问题

获取特定计数器值(如计数器为 12)下的 8 位 HOTP 验证码。

如何使用

输入共享密钥,将模式切换为 `HOTP`,位数选择 `8`,计数器输入 `12`,预览数量设为 `3`。

secret: "JBSWY3DPEHPK3PXP", mode: "hotp", algorithm: "sha1", digits: "8", counter: 12, preview: 3

结果

常见问题

这个工具安全吗?我的密钥会被上传吗?

完全安全。本工具完全在您的浏览器本地运行,所有计算均在离线状态下完成,绝不会向任何服务器发送您的共享密钥。

为什么我生成的 TOTP 验证码和手机 App 上的不一致?

请检查您的系统时间是否准确同步,以及 HMAC 算法(默认 SHA-1)、位数(默认 6 位)和步长(默认 30 秒)是否与您的账户配置一致。

什么是 otpauth:// URI?

这是一种标准协议格式,用于将 2FA 账户信息(包括密钥、签发方和账户名)打包,方便通过二维码或链接直接导入到 Google Authenticator 等 App 中。

支持哪些 HMAC 算法?

支持 RFC 标准定义的 SHA-1、SHA-256 和 SHA-512 算法,能够兼容绝大多数主流的安全认证场景。

如何使用 HOTP 模式?

选择 HOTP 模式后,您需要手动指定一个计数器(Counter)数值,工具会基于该计数器生成一次性密码,每次验证成功后计数器需递增。

专题

获授权 JWT、OTP、TOTP 与会话测试工作流

准备脱敏认证 fixture,区分令牌生成、解码与校验,测试 OTP/TOTP 的时间行为,并在不暴露真实密钥的前提下审计 JWT 与会话证据。

首页
工具3201
案例593
可视化465
文件查看器103
专题233
标签333
图像、音频与视频657

图像、音频、视频处理、转换与优化工具

数学、日期与金融644

计算器、数值计算、日期逻辑、统计与金融工具

设计与颜色297

颜色、版式、图形、视觉样式与设计辅助工具

文本与写作209

写作、清洗、格式化、提取与文本分析工具

开发与 Web193

开发者工具、网络处理、Web 调试与自动化辅助工具

转换与编码175

格式、文件、压缩包、单位与编码转换工具

FLAC/WAV 无损音源疑点筛查与证据交付
自托管抽奖组件配置复核、嵌入测试与上线交付
Stripe 优惠码候选批次审核与本地导入预检
批量照片技术初筛、近重复复核与修图候选交付
界面截图结构化、人工校对与开发交付

© 2026 Elysia Tools. 保留所有权利。

文档价格关于我们服务条款隐私政策Cookie 政策联系我们
媒体

二维码示例

用于测试二维码读取和生成工具的示例二维码图像

代码处理

代码注释示例

用于测试注释移除的各种注释样式代码示例文件

Python

Web Python 图像处理示例

Web Python 图像处理示例,使用 PIL/Pillow 包括读取、保存、缩放和格式转换

代码质量

无效变量名代码示例

展示不同编程语言中无效变量命名约定的示例代码文件

Security

PKCE Code Verifier 与 Challenge 生成器

生成、校验与验证 OAuth2 / OIDC PKCE(RFC 7636)的 code_verifier 与 S256 code_challenge 配对。三种模式:(1) 从密码学安全随机字节(256/384/512/768 位熵)生成全新的 verifier + challenge;(2) 按 RFC 审计你已有的 verifier——长度(43–128)、字符集 [A-Za-z0-9-._~] 与 ≥256 位熵;(3) 通过重算 BASE64URL(SHA256(verifier)) 验证 verifier/challenge 配对。可选构建完整的授权请求 URL 与令牌交换体。补足通用的 nonce-generator(仅输出 verifier+challenge 配对)——增加 RFC 合规审计与配对验证。

Security

BIP39 助记词生成器

生成或验证 12 到 24 词的 BIP39 助记词,并显示 entropy 与 PBKDF2-HMAC-SHA512 seed 输出

Games

Kakuro / Fillomino / Masyu / Yajilin / Hashiwokakero / Nurikabe / Slitherlink / Star Battle 谜题生成器(含唯一性证明)

从种子确定性生成 8 个 Nikoli 家族谜题(同一种子必得同一盘):Kakuro 稠密填数、Fillomino、Masyu 黑白珠、Yajilin 箭头+环、Hashiwokakero 架桥、Nurikabe 岛与海、Slitherlink 回路提示、Star Battle 双星;每种谜题由「先生成解再出题」流程产出线索,并经穷举回溯求解器数解验证——唯一性是证明出来的(最多数到 2 解),预算耗尽则诚实标注 unproven;附谜面与解答双 SVG 与按求解节点数评分的难度。

Development

OAuth 2.0 / OIDC 授权码 + PKCE 流程可视化

端到端模拟带 PKCE 的授权码流程:verifier/challenge 生成、授权 URL、令牌交换、ID Token 校验清单与拦截攻击演示。

工具输出计数器为 12 时的 8 位动态密码,并同时展示计数器为 13、14、15 的预测密码,方便进行步长漂移测试。