2FA 使用指南
解析谷歌身份验证器导出二维码
谷歌身份验证器的“转移账号”功能会把账号打包成一张或多张二维码。这些二维码不是普通的 otpauth:// 链接,而是紧凑的 otpauth-migration:// 格式,大多数工具都无法识别。本文介绍这种格式,以及如何在本地解析它。
操作步骤
- 在谷歌身份验证器中打开菜单 →“转移账号”→“导出账号”,勾选账号后点击“下一步”。
- 在电脑上打开 2FA 生成器,点击“扫描二维码”并把手机屏幕对准摄像头;或者截图后点击“上传二维码”。
- 二维码中的所有 TOTP 账号都会以卡片形式导入,显示名称、账号和实时验证码;已经保存过的账号会自动跳过。
- 如果 App 显示“第 1 张,共 3 张”,请依次添加每一张,账号会合并到同一个列表。
otpauth-migration 链接里有什么
链接形如 otpauth-migration://offline?data=CjQKCkhl…,其中 data 参数是 Base64 编码的 Protocol Buffers 数据。每个账号都包含原始密钥字节、名称、服务商、算法、位数和类型(TOTP 或 HOTP);导出被拆成多张时,还包含批次信息。
生成器在浏览器中用 JavaScript 解码这些数据,把每个密钥转换为 Base32,并重新组装成标准的 otpauth://totp/ 链接。之后你可以复制验证码、保存密钥,或显示标准二维码,把账号添加到其他验证器 App。
为什么需要解析导出码
- 把账号从谷歌验证器迁移到 Bitwarden、1Password、Aegis、微软验证器等无法识别导出格式的应用。
- 在密码管理器中离线备份原始密钥。
- 手机不在身边时,在电脑上使用 2FA 验证码。
限制与安全
基于计数器的 HOTP 账号会被跳过,因为本工具只生成基于时间的验证码,导入后会提示跳过了几个。导出码以可读形式包含所有选中账号的密钥,请把它当作密码清单对待:只在自己的设备上解析,不要把截图发给任何人,用完后删除截图。
常见问题
导出二维码会上传到服务器吗?
不会。图片在浏览器中识别,数据由本地 JavaScript 处理,网站没有任何接收密钥的服务器。
导入后少了几个账号,为什么?
要么这些是 HOTP(计数器型)账号,已被跳过;要么导出被拆成了多张二维码,还有几张没有添加。
