2FA Generator
首页
TOTP AUTHENTICATOR

2FA 二维码设置密钥

粘贴 2FA 二维码旁边显示的手动密钥,或识别二维码图片

无法扫描 2FA 二维码时使用手动设置密钥

很多 2FA 设置页面会同时显示二维码和手动设置密钥。如果无法用 Authenticator 应用扫描二维码,可以把文字密钥、解码后的 otpauth URI,或二维码截图放到这里,在本地生成同样的 TOTP 验证码。

Authenticator 应用兼容性

这个生成器适用于 Google Authenticator、Microsoft Authenticator、1Password、Bitwarden、2FAS、FreeOTP 以及很多 2FA/MFA 登录流程使用的标准 TOTP 设置密钥。只要服务提供手动设置密钥、Base32 secret 或 otpauth URI,就可以用来生成验证码。

TOTP 参数与排错

大多数账号使用 SHA-1、6 位验证码和 30 秒周期。如果验证码不被接受,优先检查复制的密钥、设备时间,以及服务是否要求 8 位验证码、SHA-256、SHA-512 或其他周期。

二维码图片识别

如果服务只显示 Authenticator 二维码,可以保存或截图二维码图片,再点击识别二维码图片。支持的浏览器会用内置 BarcodeDetector API 在本地读取 otpauth URI;不支持时仍可使用手动设置密钥或粘贴 otpauth 文本。

二维码和手动密钥的关系

标准 TOTP 设置里,二维码通常包含 otpauth URI。手动密钥是其中的 Base32 secret。只要 secret 和参数一致,两种格式会生成同一个验证码。

本页面能读取什么

本页面支持手动设置密钥、otpauth 文本,以及支持本地条码识别的浏览器中的二维码图片。如果浏览器无法识别图片,请在服务页面寻找“无法扫描”或“手动输入”选项来显示密钥。

生成器支持矩阵

用这个矩阵快速确认本地 TOTP/2FA 生成器支持哪些输入,以及复制验证码前应该检查哪些设置。

需求输入或设置需要检查结果
手动 2FA 设置密钥可带空格、横线或 padding 的 Base32 secret从账号安全页面复制完整密钥输入框按原样显示粘贴内容,计算时在本地规范化
otpauth 设置链接来自 Authenticator 二维码或设置页的 otpauth://totp/ URIURI 包含 secret 参数,以及可选 issuer、digits、period、algorithm工具读取支持的 TOTP 参数并更新生成器选项
Authenticator 二维码图片二维码截图或保存的图片浏览器支持本地 BarcodeDetector API二维码在浏览器内读取,不需要上传
多个账号每个 secret 使用一个独立生成器只有需要另一个账号或 MFA token 时才新增生成器每个生成器都有自己的名称、密钥、倒计时和复制按钮
高级 TOTP 设置SHA-1、SHA-256、SHA-512;6 或 8 位;10 到 120 秒周期如果不是常见 6 位 30 秒默认值,就按服务设置页匹配验证码与 RFC 6238 兼容的 Authenticator 应用一致
URL secret 快捷方式#secret= fragment、路径 secret 或 ?secret= 查询优先使用 fragment,因为 # 后面的 secret 不随 HTTP 请求发送路径和查询参数 secret 页面会以 noindex/no-store 返回

支持的 2FA 格式与参数

输入格式

支持 Base32 设置密钥、带空格/横线/padding 的格式化密钥、完整 otpauth://totp/ 设置链接,以及浏览器支持时本地识别 Authenticator 二维码图片。

Authenticator 兼容性

支持 Google Authenticator 兼容 TOTP、Microsoft Authenticator 兼容 TOTP、1Password、Bitwarden、2FAS、FreeOTP、Authy 风格设置密钥以及类似 MFA 应用。

TOTP 参数

支持 SHA-1、SHA-256、SHA-512 算法,6 位或 8 位验证码,10 到 120 秒周期,以及常见的 30 秒 Authenticator 倒计时。

URL 快捷填入

推荐使用 #secret=,因为 URL fragment 不会随 HTTP 请求发送。路径和 ?secret= 查询参数也可用,并会标记 noindex。

如何使用 2FA 二维码设置密钥

1

找到手动设置密钥

在账号 2FA 设置页面查找“无法扫描”“设置密钥”“手动密钥”“secret key”或二维码旁边可复制的 otpauth URI。

2

粘贴密钥或选择二维码图片

把 Base32 设置密钥或 otpauth URI 粘贴到密钥输入框。如果有二维码截图,也可以选择图片,在支持的浏览器中本地读取。

3

检查 TOTP 参数

如果服务显示 algorithm、digits 或 period,请保持一致。常见 Authenticator 默认值是 SHA-1、6 位、30 秒。

4

复制当前 TOTP 验证码

在倒计时重置前使用生成的验证码。如果验证码快过期,等下一个验证码再提交。

常见问题

什么是 TOTP?

TOTP 是基于时间的一次性密码。Authenticator 应用和网站服务共享同一个 Base32 密钥,再根据当前时间生成通常每 30 秒变化一次的验证码。

这个 2FA 工具是本地的吗?

验证码计算在浏览器中通过 Web Crypto 完成,不需要登录账号,也不需要把密钥提交到后端接口生成验证码。使用 URL 快捷填入时,建议优先使用 #secret= fragment 形式。

如何使用多个生成器?

默认页面只有一个生成器。点击新增生成器后,可以给每个生成器填写名称,再分别粘贴不同账号的 2FA 或 MFA secret。

可以在 URL 里带 2FA 设置代码吗?

可以。推荐格式是 https://2fa.chatgpt.org.uk/#secret=YOUR_BASE32_SECRET,也支持 /YOUR_BASE32_SECRET 和 ?secret=YOUR_BASE32_SECRET。

支持哪些 TOTP 参数?

生成器支持 SHA-1、SHA-256、SHA-512,支持 6 位或 8 位验证码,并支持 10 到 120 秒周期。otpauth 链接里的 algorithm、digits、period 参数会自动读取。

这个工具会创建新的 2FA secret 吗?

不会。它是把已有的 Authenticator 设置密钥转换为当前 TOTP 验证码。2FA secret 是由你开启双重验证的网站或应用生成的。

我应该保存 2FA 设置密钥吗?

应该。重要设置密钥建议保存在可信的 Authenticator 应用或密码管理器里。如果没有设置密钥或恢复码,本工具无法帮你恢复账号访问。

为什么 2FA 验证码无法通过?

常见原因是 Base32 密钥复制错误、设备时间不准,或者 TOTP 参数不一致。请确认提供 2FA 设置密钥的网站要求的算法、位数和周期。

这个工具能读取 Authenticator 二维码图片吗?

支持的浏览器可以。选择二维码截图或图片后,页面会在浏览器本地读取 otpauth URI,不会把图片上传到服务器。

无法扫描 2FA 二维码怎么办?

如果浏览器支持本地二维码图片识别,可以选择二维码截图;也可以在二维码附近寻找手动设置密钥、secret key 或无法扫描链接,把显示的 Base32 密钥粘贴到生成器。

二维码里的 secret 和手动设置密钥一样吗?

标准 TOTP 通常是一样的。二维码常保存 otpauth URI,而手动设置密钥就是该 URI 使用的 secret 值。

功能说明

  • 密钥输入框会按原样显示粘贴内容,生成验证码时再在内部兼容空格、横线和 padding。
  • 每个生成器独立计算 30 秒动态验证码,支持自定义名称、粘贴、清除、删除和点击验证码复制。
  • 默认只显示一个生成器;需要管理多个账号、多个 2FA secret 或多个 MFA token 时,再点击新增生成器。
  • 支持 otpauth:// URI、Base32 secret、URL fragment、path 和 query 参数,方便从书签或内部工具快速打开。

URL 快捷填入 2FA secret

推荐使用 fragment 形式,因为 # 后面的内容不会随 HTTP 请求发送给服务器。path 和 query 形式也支持,但页面会自动加 noindex,避免带密钥的 URL 被搜索引擎收录。

https://2fa.chatgpt.org.uk/#secret=YOUR_BASE32_SECREThttps://2fa.chatgpt.org.uk/#YOUR_BASE32_SECREThttps://2fa.chatgpt.org.uk/YOUR_BASE32_SECREThttps://2fa.chatgpt.org.uk/?secret=YOUR_BASE32_SECRET

不要把真实 2FA secret 分享给别人;如果只是临时使用,优先选择 #secret= 这种 fragment URL。