将 Base32 格式的 2FA 密钥转换为符合 RFC 6238 标准的实时一次性验证码 —— 完全在浏览器中计算。
只在可信的设备上粘贴真实的 2FA 密钥:任何看到它的人都能生成你的验证码。“试用示例”按钮加载的是 RFC 6238 公开的测试密钥。
输入有效密钥以预览 otpauth:// URI。
••• •••
此工具按照 RFC 6238 标准生成基于时间的一次性密码(TOTP),这与 Google Authenticator、Authy 等身份验证应用所使用的算法相同。粘贴设置双重验证时获得的 Base32 编码密钥,此工具即可通过 Web Crypto API,完全在浏览器中计算出当前、上一个和下一个验证码。
什么是 TOTP 验证码?
基于时间的一次性密码(TOTP)是由共享密钥和当前时间生成的一串短数字验证码,每 30 或 60 秒变化一次。它是大多数用于双重验证(2FA)的身份验证应用背后所依据的标准。
在这里输入我真实的 2FA 密钥安全吗?
所有计算都在你的浏览器本地完成 —— 密钥不会被发送到任何地方,也不会被记录或存储。不过,在任何网页中输入真实的生产环境 2FA 密钥都存在一定的固有风险(例如遭到入侵的浏览器扩展)。用于学习、测试,或使用你自己掌控的密钥是安全的;对于真正敏感或共享账户的密钥,请格外谨慎。
此工具支持哪些算法和设置?
支持 SHA-1(几乎所有身份验证应用默认使用的算法)、SHA-256 和 SHA-512,可生成 6 位或 8 位验证码,周期为 30 秒或 60 秒,覆盖了 RFC 6238 定义的全部范围。
为什么我的验证码和身份验证应用中的不一致?
最常见的原因包括:设备时钟不同步(TOTP 依赖时间),算法、位数或周期与账户实际使用的设置不匹配(大多数服务使用 SHA-1、6 位、30 秒),或密钥输入有误。请仔细核对各项设置以及设备的时钟。
可以把这个页面当作日常使用的身份验证器吗?
不太合适。本页面刻意不保存你的密钥,所以每次都得重新粘贴,而每粘贴一次就多一分泄露的风险。日常登录请使用身份验证器 App;本工具适合在手头已有密钥时进行测试、调试和核对验证码。
密钥应该是什么格式?
一个 Base32 编码的字符串(字母 A-Z 和数字 2-7)—— 与服务提供手动 2FA 设置密钥(而非二维码)时显示的格式相同。空格、小写字母和缺失的填充符都会被自动容许。
所有计算都通过 Web Crypto API 在你的浏览器本地完成。你的密钥永远不会被上传、记录或存储 —— 但与任何网页工具一样,除非你了解其中的风险,否则应避免粘贴真正敏感的生产环境密钥。