2FA代码生成器(TOTP)

用你自己的Base32设置密钥,在本地生成基于时间的验证码。

计算在本地完成,我们不会把输入值发送到服务器。

示例

使用RFC中公开的测试密钥,第59秒时6位SHA-1验证码为287082,并一直保持287082直到59.999秒;到第60秒则变为359152。

计算方法

本工具实现TOTP标准RFC 6238:把当前的Unix时间除以所选周期,再用HMAC把这个计数值与你的密钥结合,最后把结果转换成6位或8位数字。只要密钥、设置和时间都一致,任何人算出的验证码都相同。

重要说明

密钥按密码对待:它只留在本页面的内存中,不保存、不记录、不发送到任何地方,重置或离开页面时即被清除。但这仍无法抵御已被入侵的设备或恶意浏览器扩展,所以不要在公用电脑上粘贴密钥。

实用指南

身份验证器应用根据共享的密钥和当前时间,每30秒按TOTP标准(RFC 6238)生成新验证码。请按服务提供的原样输入Base32设置密钥;不支持二维码图片、短信验证码或otpauth链接。大多数服务使用SHA-1、6位、30秒:用RFC公开的测试密钥,在第59秒时6位码为287082,若改为8位则是94287082,SHA-256则是46119246。开头的0也要输入(081804)。密钥不会被保存或发送,本页面不加载广告或统计脚本。

使用示例
输入结果
RFC key · SHA-1 · 6 digits · 30 s · at 59 s287082
RFC key · SHA-1 · 6 digits · 30 s · at 59.999 s287082
RFC key · SHA-1 · 6 digits · 30 s · at 60 s359152
RFC key · SHA-1 · 6 digits · 30 s · at 1111111109 s081804
RFC key · SHA-1 · 8 digits · at 59 s94287082
RFC key · SHA-256 · 8 digits · at 59 s46119246
RFC key · SHA-512 · 8 digits · at 59 s90693936

常见问题

验证码被拒绝,该检查什么?

先看设置:多数服务使用SHA-1、6位数字和30秒,其中任何一项不一致,都会生成看似正常却错误的验证码。同一个密钥、同一时刻,8位是94287082,SHA-256是46119246,SHA-512是90693936。然后在设备上开启时间自动设置,再取一个新的验证码试试。

可以输入哪些格式的密钥?

请按服务提供的样子原样输入Base32设置密钥;空格和小写字母都可以,但二维码图片、短信验证码和otpauth链接都不行。切勿把密钥分享给他人,也请记住:复制验证码会把它留在设备的剪贴板里。

它能备份或找回我的账号吗?

不能。本页面既不是账号保险库,也不是备份或找回服务;请把服务给的恢复代码另行妥善保存,日常登录请使用可信的验证器应用。开头的零也是验证码的一部分,比如081804,必须一并输入。

相关工具