数据安全提示: 所有文本数据均在您的浏览器本地处理,不会上传到服务器。

Base32转换工具

Base32 v1.0
当前操作:文本 → Base32编码(标准Base32)

Base32变体

编码选项

输入文本

字符数: 0 字节数: 0 膨胀率: 1.60×

转换结果

转换结果将显示在这里...
等待输入... 长度: 0

两步验证(OTP)示例

Base32常用于两步验证(2FA)的密钥生成,如Google Authenticator、TOTP/HOTP等。

JBSWY3DPEBLW64TMMQQQ====

Base32编码的TOTP密钥

GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ

Base32编码的HOTP密钥

使用示例

"Hello" → Base32
JBSWY3DP
"12345" → Base32
GEZDGNBV
"ABCDE" → Base32
IFBEGRCF
"JBSWY3DP" → 解码
Hello

Base32算法原理

Base32字符集

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
2
3
4
5
6
7

共32个字符,排除了容易混淆的0、1、8、9,加=作为填充字符

编码效率比较

Base32每5字节编码为8字符,膨胀率1.6倍。比Base16紧凑,但比Base64低效。优势在于不区分大小写。

编码过程示例 ("ABCDE")

5个字节
01000001 01000010 01000011 01000100 01000101
重组为40位
01000001 01000010 01000011 01000100 01000101
分为8组5位
01000 00101 00001 00100 00110 10001 00010 00101
8个Base32字符
IFBE GRCF
// Base32编码算法伪代码
function encodeBase32(bytes) {
  const ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
  let result = "";
  for (let i = 0; i < bytes.length; i += 5) {
    let chunk = 0, padding = 0;
    for (let j = 0; j < 5; j++) {
      if (i + j < bytes.length) chunk = (chunk << 8) | bytes[i + j];
      else padding++;
    }
    for (let j = 7; j >= 0; j--) {
      if (j < padding) result += "=";
      else result += ALPHABET[(chunk >> (j * 5)) & 0x1F];
    }
  }
  return result;
}

Base32变体介绍

标准Base32

RFC4648标准,字符集A-Z和2-7,最常用。

ABCDEFGHIJKLMNOPQRSTUVWXYZ234567

应用:OTP、DNSSEC、文件系统

Base32Hex

使用0-9和A-V,保持字典顺序。

0123456789ABCDEFGHIJKLMNOPQRSTUV

应用:需要排序的标识符

Crockford's Base32

去除易混淆字符,支持校验和。

0123456789ABCDEFGHJKMNPQRSTVWXYZ

应用:人类可读标识符、邀请码

应用场景

两步验证(OTP): Google Authenticator等使用Base32编码密钥。
DNSSEC: NSEC3哈希使用Base32编码域名。
文件系统: SquashFS等使用Base32避免大小写敏感。
产品序列号: 不区分大小写,减少输入错误。

为什么选择Base32?

  • 不区分大小写,适合人工输入
  • 排除了易混淆字符(0,1,8,9)
  • 文件系统友好,大小写不敏感
  • 行业标准(OTP、DNSSEC)

快速提示

  • 本地处理,数据安全
  • 不区分大小写,易于阅读
  • 数据膨胀约60% (1.6倍)
  • 两步验证(OTP)标准编码
  • 一键复制结果
  • Ctrl+Enter快速转换

技术信息

算法标准:RFC 4648
字符集大小:32
填充字符:=
数据膨胀:1.6倍
编码比率:5字节→8字符
大小写敏感:不敏感

需要其他编码工具?

免费为您开发定制化工具