OTP 验证码生成/校验
生成和校验 TOTP/HOTP 一次性验证码,用于双因素认证。支持 SHA-1/256/512、Base32/Hex 密钥、二维码导出,100%浏览器端运行,无需注册。
什么是一次性验证码(OTP)?
OTP 是仅在一次登录会话或交易中有效的密码。由于它会频繁变化,即使被窃取也会很快失效,因此比静态密码更安全。
TOTP 和 HOTP 有什么区别?
TOTP(基于时间的一次性密码,RFC 6238)根据当前时间生成验证码,默认每 30 秒变化一次。HOTP(基于 HMAC 的一次性密码,RFC 4226)使用递增计数器,每次生成时计数器加一。TOTP 在现代双因素认证中更常见。
这个 OTP 生成器安全吗?
安全。所有生成和校验都在浏览器本地通过 Web Crypto API 完成,您的密钥不会离开设备,也不会发送到任何服务器。
什么是 Base32 密钥?
Base32 是一种用 32 个字符(A-Z 和 2-7)表示二进制数据的编码方案,是 Google Authenticator 等验证器使用的 OTP 密钥标准格式,例如 "JBSWY3DPEHPK3PXP"。
应该选择哪种哈希算法?
SHA-1 是默认算法,与包括 Google Authenticator 在内的大多数验证器兼容。SHA-256 和 SHA-512 更安全,但并非所有应用都支持。为获得最佳兼容性请使用 SHA-1。
如何将生成的验证码添加到 Google Authenticator?
输入密钥后,用 Google Authenticator(或其他兼容 2FA 应用)扫描显示的 otpauth 二维码。也可以手动输入 otpauth URI 或密钥。
otpauth:// URI 格式是什么?
otpauth://totp/<标签>?secret=<密钥>&issuer=<发行方>&algorithm=<算法>&digits=<位数>&period=<周期>。该 URI 编码了所有 OTP 参数,可渲染为二维码方便导入验证器。
为什么验证码每 30 秒变化一次?
RFC 6238 规定 TOTP 默认时间步长(周期)为 30 秒,在安全性(有效期短)和可用性(有足够时间输入)之间取得平衡。如有需要可自定义周期。
可以校验收到的验证码吗?
可以,切换到校验模式,输入密钥和收到的验证码。工具会比对当前及前后时间窗口的值,以容忍微小时钟偏差。
6 位和 8 位验证码有什么区别?
指生成的 OTP 验证码长度。6 位是大多数 2FA 系统的标准长度。8 位提供更多组合可能,但支持的应用较少。
为什么我的验证码和 Google Authenticator 不一致?
请检查密钥、算法(通常 SHA-1)、位数(通常 6 位)和周期(通常 30 秒)是否一致。同时确保设备时间准确,因为 TOTP 依赖时间同步。
2FA 和 OTP 是一回事吗?
OTP 是生成一次性验证码的机制。2FA(双因素认证)是一种安全流程,常以 OTP 作为第二因素,将"你所知道的"(密码)与"你所拥有的"(OTP 设备)相结合。
如何使用OTP 验证码生成/校验
生成并校验用于双因素认证的 TOTP/HOTP 一次性密码,支持二维码导出。所有计算都在浏览器本地完成,密钥绝不会离开设备。
- 把密钥粘贴到 Secret Key,例如 JBSWY3DPEHPK3PXP,并将 Secret Format 设为 Base32 或 Hex。
- 在 Algorithm 中选择哈希算法 SHA-1、SHA-256 或 SHA-512,并在 Digits 中选择位数 6 或 8。
- 点击 TOTP Generate 生成基于时间的验证码,或填入 Counter 值后点击 HOTP Generate。
- 填写 Issuer (optional) 和 Account Label (optional),例如 MyCompany 和 user@example.com。
- 要校验验证码,在 Code to Validate 中输入,例如 123456,然后点击 Validate。
- 点击 Copy 获取 otpauth:// URI,导入到你的验证器应用。
TOTP 验证码每过 Period (seconds)(默认 30 秒)就轮换一次,校验失败往往只是时间窗口过期。
相关工具
- 文件哈希校验 本地计算校验MD5、SHA-1、SHA-256、SHA-512文件哈希值
- PDF解密 在浏览器中即时移除PDF文件的密码保护,内置智能暴力密码恢复功能。
- PDF加密 免费在线为PDF文件添加密码保护。使用AES-256加密保护PDF文档,防止未授权访问。100%浏览器端处理,无需上传。
- Basic Auth 头生成器 在线生成 HTTP Basic Authentication 头 — 即时将用户名:密码编码为 Base64 Authorization 头
- 文本加密解密 使用 AES-GCM/AES-CBC 算法安全加密解密文本,基于密码,所有处理在浏览器本地完成,数据绝不离开设备。
- AES加密/解密 AES加密解密工具,支持CBC、CFB、CTR、OFB、ECB模式,Pkcs7/ZeroPadding/NoPadding填充,128/192/256位密钥,Base64输出,自动识别密钥/IV格式
- RSA密钥对生成 生成2048、3072、4096位RSA密钥对,PEM格式输出,含指纹信息。完全在浏览器中运行。
- SSH密钥生成器 在浏览器中即时生成安全的SSH密钥对(RSA、Ed25519、ECDSA)。免费在线工具,输出OpenSSH格式,无需注册。