TOTP生成器
从Base32密钥或otpauth URI计算当前的TOTP/2FA验证码(RFC 6238),完全在本地进行:密钥永远不会离开你的设备。
正在你的设备上本地处理 ...
正在你的设备上本地处理 ...
0%
你的文件从未离开你的设备
我的文件会被上传吗?
不会。一切都在你的浏览器中运行,你的文件永不离开你的设备。这一点如何验证
从Base32密钥或otpauth URI计算当前的TOTP/2FA验证码(RFC 6238),完全在本地进行:密钥永远不会离开你的设备。
正在你的设备上本地处理 ...
正在你的设备上本地处理 ...
0%
你的文件从未离开你的设备
不会。一切都在你的浏览器中运行,你的文件永不离开你的设备。这一点如何验证
TOTP验证码(基于时间的一次性密码,RFC 6238)是Google Authenticator或Authy等应用在双重验证登录时显示的短数字。它由一个密钥(通常以Base32编码)和当前时间计算得出:服务方和你的应用都知道同一个密钥,并各自独立计算出同一时间窗口(通常为30秒)内相同的验证码,服务器与应用之间完全不需要任何通信,只依靠一个共同的公式。
本工具会在你的浏览器中就地计算这个公式。你可以粘贴完整的otpauth://链接,这种链接通常隐藏在设置新的双重验证账户时出现的二维码里,也可以手动输入密钥,并自行选择算法(SHA-1、SHA-256或SHA-512)、位数(6位、7位或8位)以及时间窗口(默认30秒)。如果粘贴的链接本身已经包含这些值中的某一个,那么以链接中的值为准,和任何验证器应用的真实设置流程一样。
这有什么用:如果你丢失了手机或更换了应用,可以用这里保存的密钥立即确认它是否仍然正确,而不必先安装新应用。在开发自己的双重验证功能时,也可以用它快速计算预期的验证码,并与你自己的服务器进行比对。
密钥就是你双重验证账户的全部安全保障,任何知道它的人都能计算出未来的每一个验证码。正因如此,计算完全在本地通过浏览器原生的Web Crypto接口(经由crypto.subtle实现的HMAC)完成;任何内容都不会被发送、保存或记录,首次加载后即使离线也能继续使用。如果想把新生成的密钥变成二维码,可以使用我们的二维码生成器:只需把otpauth链接粘贴进去即可。
| 输入格式 | 文本输入 |
|---|---|
| 输出格式 | TXT |
| 批量处理 | 不支持 |
| 处理方式 | 在浏览器中本地处理 (JavaScript) |
| 文件上传 | 无 |
限制: 本工具不通过摄像头扫描二维码(出于隐私考虑刻意未加入此功能),密钥或otpauth链接必须以文本形式输入。它不会在两次访问之间保存任何密钥;关闭页面后一切都会消失。HOTP(基于计数器、与时间无关的方式)刻意不受支持,只支持TOTP。要生成新的二维码,请使用单独的二维码生成器,粘贴此处显示的otpauth链接。
不会。计算完全在你的浏览器中通过Web Crypto进行;密钥永远不会离开你的设备,不会被保存,也不会被记录。
TOTP从当前时间推导计数器(默认30秒的时间窗口),HOTP则从一个不断递增的事件计数器推导。如今几乎所有验证器应用都使用TOTP;本工具刻意只支持这一种方式。
可以,间接实现:把otpauth链接(包含密钥、算法、位数和时间窗口)粘贴到我们的二维码生成器中,它会将其转换成任何验证器应用都能扫描的二维码。
SHA-1(几乎所有应用使用的标准)、SHA-256和SHA-512,三者都通过浏览器原生的Web Crypto HMAC功能实现,无需任何额外的库。
TOTP验证码只在一个固定的时间窗口内有效(通常为30秒)。窗口到期后,再次点击会自动计算出下一个有效的验证码。