TOTP 2FA 验证码生成器:用密钥得到验证码

粘贴 2FA 密钥或 otpauth:// 链接,即可看到身份验证器此刻会显示的验证码。验证码在本设备上计算,密钥不会被发送或保存。

TOTP 验证码是怎么生成的

TOTP 验证码(RFC 6238)是由两样东西算出的一次性密码:开启双重验证时服务给你的密钥,以及当前时间。时间步长每 30 秒变化一次,验证码也随之改变。服务在自己那边算出同样的验证码并进行比对。

你的密钥只留在这台设备上

验证码使用浏览器内置的 Web Crypto API 计算。页面不发送任何东西:不发送密钥、验证码或账号名。不会保存任何内容,密钥也不会出现在地址栏中,所以刷新或关闭标签页后它就被忘掉。

什么时候适合用,什么时候不适合

当身份验证器在你没带在身边的手机上,或者想确认记下的密钥是否正确时,它很有用。任何拿到密钥的人都能生成你的验证码,所以要像密码一样保管它;日常使用请把它添加到你信任的设备上的身份验证器里。

你的账号也绑定了手机号吗?

很多服务也把登录和找回账号绑定在手机号上。选一个只属于你的私人号码,在你持有期间不会分配给任何其他人。

在哪里找到我的 2FA 密钥?

开启双重验证时,服务会显示一个二维码,旁边通常有一串由字母和数字组成的设置密钥。这串密钥就是要粘贴到这里的内容。如果你没有保存,服务无法再次显示:关闭再重新开启 2FA 即可得到新的密钥。

为什么验证码和服务要求的不一致?

最常见的原因是设备时间不准:TOTP 依赖时间,时钟差一分钟就会得到不同的验证码。其次检查设置:大多数服务使用 6 位数字、SHA-1,并且每 30 秒换一个新验证码。

把密钥粘贴到这里安全吗?

页面在你的设备上计算验证码,不向任何地方发送数据;加载完成后即使断网也能使用。不过,最安全的做法仍是把密钥存放在你自己设备上的身份验证器中,切勿在不信任的电脑上粘贴密钥。

支持 Google 身份验证器或 Microsoft Authenticator 的密钥吗?

支持标准的 Base32 TOTP 密钥,这些应用使用的正是这种格式。不支持服务自有格式的验证码,例如 Steam Guard。