TOTP 验证码
由 Base32 密钥生成动态口令(TOTP)。
什么是TOTP 验证码?
TOTP(Time-based One-Time Password,基于时间的一次性密码)是很多网站“两步验证 / 二次验证”里手机验证器 App(如 Google Authenticator、Microsoft Authenticator)生成 6 位动态数字的算法。它的原理是:网站给你一个共享密钥(通常以 Base32 编码显示,或生成为二维码),验证器 App 和服务器各自用这个密钥加上当前的系统时间戳(一般每 30 秒为一个周期),通过 HMAC 哈希算法计算出一个动态验证码,只要双方时间和密钥一致,算出来的验证码就应该相同。 这个工具接收你手动输入的 Base32 密钥,按标准 TOTP 算法在本地计算出当前应该显示的动态验证码,效果等价于打开手机上的验证器 App 看一眼当前验证码。
为什么使用TOTP 验证码?
常见场景是:在电脑上调试或迁移两步验证配置时,想验证某个 Base32 密钥是否正确、算出来的验证码和手机 App 是否一致;开发对接 TOTP 相关功能(比如自己的系统要接入两步验证)时,用它来交叉验证算法实现是否正确;或者手机不在身边、但知道密钥字符串时,临时在电脑上算一次验证码应急。 相比只能在手机上生成验证码,这个工具的价值在于“可核对、可调试”:能直接看到密钥、时间窗口、算出的验证码,方便开发和排错,而不是像手机 App 那样只是一个黑盒结果。日常登录网站仍然建议使用专门的验证器 App 或密码管理器来保管密钥,更安全方便。
使用示例
由密钥生成当前验证码
输入 Base32 密钥 `JBSWY3DPEHPK3PXP`,工具结合当前系统时间计算出一个 6 位数字验证码,例如 `123456`,并显示大约还有多少秒后会切换到下一个验证码(默认周期通常为 30 秒)。
核对与手机 App 是否一致
把网站两步验证页面显示的 Base32 密钥同时输入到手机验证器 App 和这个工具中,对比两边算出的 6 位数字是否相同,用来确认密钥抄录无误、迁移配置成功。
排查验证码总是错误的问题
如果发现算出的验证码始终和预期不符,可以检查密钥是否抄写有误(容易把 0 和 O、1 和 I 看混)、或者本机系统时间是否和标准时间存在明显偏差,因为 TOTP 对时间同步要求较高。
常见问题
这里的密钥是什么格式?
生成的动态码和手机 App 一致吗?
密钥会上传服务器吗?
为什么我算出来的验证码和手机上不一样?
这个工具会把我的密钥上传吗?
输入的密钥必须是 Base32 格式吗?
把密钥输入这类工具安全吗?
相关工具
← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。