补充说明
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 可避免该问题。