Linux 命令速查
文本处理 man base32

base32

按 RFC 4648 对数据进行 Base32 编码或解码

返回

补充说明

base32 属于 GNU coreutils,使用 A-Z 与 2-7 共 32 个字符表示二进制数据,输出带 = 填充,默认每 76 列换行。相比 Base64,它更大(约 1.6 倍)但不区分大小写,适合人工抄写、文件名或大小写不敏感的场景。

常用于编码短令牌、校验值或需要避免特殊字符的配置项。它不是加密,不能保护敏感信息;解码时若输入含换行或非法字符,可用 -i 忽略垃圾字符。

语法

base32 [选项] [文件]

选项

  • -d, --decode:解码
  • -i, --ignore-garbage:解码时忽略非字母表字符
  • -w, --wrap=COLS:每行字符数,0 表示不换行
  • --help、--version:帮助与版本信息

实例

# 编码字符串(-n 避免把换行也编码进去)
printf 'hello' | base32

# 编码文件到另一个文件
base32 archive.tar.gz > archive.b32

# 解码回原始内容
base32 -d archive.b32 > archive.tar.gz

# 不换行输出,便于放入单行配置
printf 'token' | base32 -w 0

# 解码时容忍空格与换行
base32 -d -i encoded.txt

# 校验往返是否一致
printf 'hello' | base32 | base32 -d

若解码结果末尾多出字节,检查编码时是否误把换行符一并编码;用 printf 而非 echo 可避免该问题。

参考链接