🛡️ Base32 (OTP) 转换器

hi-base32 驱动

使用32个字母及数字(A-Z, 2-7),不区分大小写,广泛应用于Google Authenticator密钥与二进制传输。

使用提示

  • 编码:将普通文本(如“Hello”)转换为Base32字符串(如“JBSWY3DP”),常用于密钥生成。
  • 解码:将Base32编码还原为原始文本,自动清洗空格和换行。
  • 支持带填充符“=”的Base32标准格式,也兼容无填充的简洁格式。
  • 所有转换均在本地完成,数据不会上传到服务器,保障隐私安全。
  • Base32输出仅包含大写字母A-Z和数字2-7,末尾可能包含“=”填充。

关于Base32编码与OTP密钥转换工具

什么是Base32?

Base32是一种用32个可打印字符表示二进制数据的编码方式,字符集为A-Z和2-7(共32个)。相比Base64,它去除了容易混淆的字符(如0,1,8,9),且不区分大小写,更适合人工输入和传输。本工具基于高效的hi-base32库实现,提供准确的编码/解码能力,特别适用于处理双因素认证(2FA)中的OTP密钥。

Base32在OTP中的应用

在Google Authenticator、Microsoft Authenticator等应用中,OTP种子密钥通常以Base32格式存储和展示。例如,一个典型的密钥“JBSWY3DPEBLW64TMMQ”就是Base32编码。用户需要将该密钥输入到应用中,或者通过扫描二维码(二维码内容也是Base32编码的URI)。本工具可以直接对这些密钥进行解码查看原始字节,或对自定义文本进行编码生成兼容密钥。

  • 编码文本为密钥:将任意字符串(如邮箱、服务名)编码为Base32,作为OTP种子。
  • 解码验证密钥:从现有Base32密钥还原出原始数据,确保密钥正确性。
  • 填充符处理:自动处理末尾的“=”,兼容各种实现。

相关概念与标准

RFC 4648

定义了Base32的标准规范,包括字符集“ABCDEFGHIJKLMNOPQRSTUVWXYZ234567”以及可选的填充符“=”。本工具严格遵循此标准。

OTP (一次性密码)

基于时间或计数的一次性密码算法(TOTP/HOTP),密钥通常以Base32格式配置在客户端设备中,每隔30秒或按需生成动态密码。

Base32 vs Base64

Base32比Base64多出约20%的编码长度,但字符集更友好(无标点符号),适合人工转录。Base64则更紧凑,常用于数据URI和邮件传输。

常见问题

问:为什么解码后出现乱码? 答:Base32只能编码二进制数据,如果原始文本不是UTF-8编码,解码后可能无法正常显示。但本工具默认按UTF-8处理,适用于大多数字符串。

问:填充符“=”必须保留吗? 答:标准Base32要求长度是8的倍数,不足时用“=”填充。但许多实现(如Google Authenticator)接受无填充的密钥。本工具编码时会自动添加填充,解码时自动处理填充。