什么是2FA密钥?一文看懂Base32与otpauth

Digital Account Market

· 最近更新:

2FA密钥是一串很短的字母和数字,验证器应用会把它转换成你登录时输入的六位验证码。如果你的发货内容里包含它,那么它就是整行数据里仅次于密码的最重要字段,同时也是买家最容易输错或与其他内容混淆的字段。本文会讲清这串字符是什么、Base32长什么样,以及密钥与备份码、二维码内容有何区别。

你还会了解如何在发货行里找到密钥,并在几秒内确认它能否使用,这样面对文件里的任何一串字符,都能判断它是密钥、备份码还是别的东西。

2FA密钥是什么,它如何生成六位验证码

基于时间的一次性密码(TOTP,定义于 RFC 6238)由两个要素构成:共享密钥和当前时间。设置2FA时,平台生成密钥并保留一份副本,你的验证器应用保存另一份。每隔30秒,双方对密钥和时钟进行相同的计算,得到相同的六位数字。

这在实际使用中有三个后果:

  • 密钥是账号的“第二把钥匙”。 只要这套2FA设置保持有效,持有密钥的人就能在任何设备上生成有效验证码。
  • 验证码不会存放在任何地方。 每个验证码每30秒重新计算一次,所以旧验证码的截图毫无用处。
  • 时钟很重要。 如果生成验证码的设备时间与真实时间相差一分钟或更多,即使密钥正确,生成的验证码也会被拒绝。

Base32:字符长什么样,以及常见的输入错误

密钥使用Base32书写,这套字符集由26个大写字母A到Z和数字2到7组成,仅此而已。数字0、1、8、9以及标点符号都不会出现。下面是一个仅作演示的示例(并非真实账号密钥):JBSWY3DPEHPK3PXP。真实密钥通常有16到32个字符。

因为合法字符只有32个,大多数输入错误都很容易发现:

  • 密钥中间出现0、1或8,说明某个字符被看错了。0通常是字母O,1通常是字母I或L,8通常是字母B。
  • 小写字母一般没有问题,因为大多数应用会自动转换。
  • 末尾的一个或多个“=”是填充符。许多应用无论有没有它们都能接受这个密钥。
  • 看不见的多余字符,例如从文本文件复制时带上的末尾空格或换行,常常导致“密钥无效”的提示。

otpauth URI、二维码和纯文本密钥

同一个密钥可能以三种形式送到你手里,把它们混为一谈会造成很多困惑:

  • 纯文本密钥。 单独的一串Base32字符。验证器应用把它称为设置密钥或手动输入密钥。
  • 二维码。 一张编码了 otpauth URI 的图片,手机扫一扫即可,不必手动输入密钥。
  • otpauth URI。 一行类似 otpauth://totp/Example:user?secret=JBSWY3DPEHPK3PXP&issuer=Example 的文本。secret= 后面的值就是Base32密钥,其余部分是标签,以及 issuer、algorithm、digits、period 等设置。

如果你手里只有二维码图片或 otpauth 链接,密钥就是 secret= 之后、下一个 & 之前的那段文本。标准设置使用SHA-1、六位数字和30秒周期,当你只输入密钥时,应用会采用这些默认值。扫描二维码或导入完整URI时,其中包含的非默认设置也会一并生效。

2FA密钥、备份码与恢复邮箱

这三样东西保护的是同一个账号,但作用完全不同:

  • 2FA密钥。 一串长期有效的Base32字符,每30秒生成一个新验证码。只有在重置或重新设置2FA时才会改变。
  • 备份码。 平台可能提供的一次性验证码,用于你用不了验证器的那一天。每个只能用一次。它们不是Base32密钥,所以验证器应用或TOTP工具无法使用。
  • 恢复邮箱。 它是一个收件箱,而不是验证码。登录确认和重置链接都会发到这里。在发货行里,它以邮箱地址的形式出现,后面通常跟着该邮箱自己的密码。

密钥负责生成你每天用的验证码,备份码是备胎,恢复邮箱则是其他环节出问题时重新进入账号的通道。请在你的记录里把它们分别标注清楚。

在发货行中找到密钥并测试

发货内容是一个TXT文件,每行类似 username:password:email:email_password:auth_token,具体字段因分类而异。如果某个分类包含2FA密钥,它就是这一行里多出来的一个字段。不要盲目数位置:先阅读分类说明,再与你文件的第一行对照。

你也可以凭形状识别各个字段:

  • 密钥有16个或更多字符,由大写字母和数字2到7组成,不含标点。
  • auth_token 是一长串十六进制字符。它是会话令牌,不是验证码生成器,不能代替密钥。相关用法请看如何用 auth token 登录 Twitter。
  • 密码中可能含有冒号,所以简单地按“:”拆分有时会把一行拆坏。

要检查每一行是否采用相同的格式,可以把样本粘贴到格式识别工具。如果只想提取存放密钥的那一列,请使用按分隔符拆分工具。

然后几秒钟内就能测试密钥。打开免费的2FA验证码生成器,粘贴密钥,就会显示带倒计时的六位验证码。如果工具提示密钥无效,请回头对照上面的输入错误清单。如果验证码已显示但登录被拒绝,请检查设备时钟,并参考2FA验证码不起作用时该怎么办。

管理多个账号时如何安全保存密钥

发货行里往往同时包含密码和2FA密钥,因此任何人打开这个文件就同时拥有了两重验证。请把整个文件作为一个整体来保护,而不是逐个字段单独处理:

  • 把文件放在一个访问受限的私密文件夹里,避免通过聊天软件、共享文档或截图传递。
  • 收货后尽快测试每个密钥,并在账号旁记下日期,这样问题能及早暴露。
  • 标注清楚每一串字符是什么,避免一次性备份码被误填进验证器应用。
  • 控制副本数量。 把同一个密钥再导入第二个验证器应用是合理的备份方式,但每多一份副本,就多一个可能泄露的地方。

想了解更完整的方案,请阅读双重身份验证与恢复规划;商品术语可参考账号术语表。在比较手机验证老账号分类这类商品时,请阅读说明,了解发货文件包含哪些内容。如果你需要依赖2FA密钥,请在下单前先确认,或通过 Telegram 联系客服。

常见问题

2FA密钥长什么样?

它是由大写字母A到Z和数字2到7组成的字符串,通常有16到32个字符,例如文档示例中的 JBSWY3DPEHPK3PXP。有些平台会用空格或短横线把它分成若干组显示。

2FA密钥和备份码是一回事吗?

不是。只要这套2FA设置保持有效,密钥就会每30秒生成一个新验证码。备份码是一次性验证码,只能使用一次,也无法用在验证器应用里。

能把二维码转换成密钥吗?

可以。设置二维码编码的是一条 otpauth URI,密钥就是该文本中 secret= 后面的值。请妥善保管这段文本,它和密钥本身一样敏感。

为什么有些密钥带有空格或短横线?

空格只是为了方便阅读,通常每四个字符一组。如果应用拒绝该密钥,请去掉空格和短横线;免费的2FA验证码生成器可以直接接受它们。

同一个密钥可以同时用在两个应用里吗?

可以。任何持有相同密钥且时钟准确的应用或设备,都会显示相同的验证码。这很适合做备份,但每多一份副本,密钥就多一处可能暴露的地方。

工具

热门分类

支持频道