Base32密钥是什么?2FA密钥格式与输入规则

Base32把二进制密钥转换成便于人工输入的字符,但它不是加密,任何拿到密钥的人都可能生成验证码。

Base32为什么用于2FA密钥

TOTP需要双方保存同一份二进制密钥。二进制不适合人工抄写,Base32把它编码成较少混淆的字母和数字,因此常出现在二维码下方的手动设置密钥中。

Base32只负责表达数据,不会隐藏数据。把Base32密钥公开,效果等同于公开二维码中的TOTP凭证。

标准Base32允许哪些字符

RFC 4648定义的常见Base32字母表包含A到Z和数字2到7。服务可能使用小写显示,验证器通常会统一转换成大写。末尾的等号是填充符,有些2FA实现会省略。

数字0、1、8、9不属于这套标准字母表。看到这些字符时,应检查是否把字母O误认为0,或把字母I、L误认为1。

空格、连字符和大小写怎么处理

网页可能每四个字符插入空格,方便用户核对。多数验证器会忽略空格和连字符,但最稳妥的做法仍是使用服务提供的完整原文,不随意删除中间字符。

如果手动输入后验证码不同,先重新复制密钥,再确认算法、位数和周期,而不是反复修改字符猜测。

密钥长度是否固定

Base32文本长度取决于原始密钥长度,并不存在所有网站都相同的固定字符数。较长密钥不一定意味着网站会使用更长验证码,验证码位数是另一个独立参数。

不要为了让密钥看起来符合某个长度而补零或截断。任何一个字符变化都会产生完全不同的验证码序列。

如何安全核对密钥

  • 只在目标网站官方设置页和可信验证器之间传递密钥。
  • 使用显示功能核对时,确认周围没有录屏、投屏或旁观者。
  • 不要把真实密钥粘贴到聊天软件、搜索框或公开代码仓库。
  • 怀疑密钥泄露时不要继续沿用,应在账户设置中重新绑定。

常见问题

Base32密钥是不是密码?

它不是账户登录密码,但属于长期认证凭证,敏感程度接近密码。获得密钥的人可以持续计算有效TOTP验证码。

Base32末尾没有等号正常吗?

正常。标准编码可以使用填充符,但许多TOTP实现会省略末尾等号,并在解析时自行补齐。

参考标准与资料