Linux 的 base32 命令

Linux 的 base32 命令

概述

base32 是 Linux 系统中用于 Base32 编码和解码的命令行工具。Base32 是一种用 32 个可打印字符(A-Z 和 2-7)表示二进制数据的编码方式,常用于在不支持二进制数据的传输环境中安全地传递数据。

基本语法

复制代码
base32 [OPTION]... [FILE]

如果未指定 FILE 参数或 FILE 为 "-",则从标准输入读取数据。

常用选项

  • -d--decode:解码 Base32 数据(默认行为是编码)
  • -i--ignore-garbage:解码时忽略非字母数字字符
  • -w COLS--wrap=COLS:指定每行输出的字符数(默认为 76),使用 0 表示不换行
  • --help:显示帮助信息
  • --version:显示版本信息

使用示例

1. 基本编码

复制代码
echo "hello" | base32

输出:

复制代码
NBSWY3DP

2. 基本解码

复制代码
echo "NBSWY3DP" | base32 -d

输出:

复制代码
hello

3. 文件编码

复制代码
base32 input.txt > encoded.txt

4. 文件解码

复制代码
base32 -d encoded.txt > decoded.txt

5. 不换行输出

复制代码
echo "hello" | base32 -w 0

输出:

复制代码
NBSWY3DP

6. 忽略无效字符

复制代码
echo "NBS WY3 DP" | base32 -d -i

输出:

复制代码
hello

应用场景

  1. 数据安全传输:在只能传递文本的环境中传输二进制数据
  2. URL安全编码:Base32 不包含容易混淆的字符(如 0/O, 1/l),适合用于URL
  3. 证书编码:如 TOTP 双因素认证密钥通常使用 Base32 编码
  4. 数据存储:将二进制数据转换为可打印字符串存储

注意事项

  1. Base32 编码会使数据体积增加约 60%(5字节变为8字符)
  2. 标准 Base32 使用字母表 A-Z 和数字 2-7(RFC 4648)
  3. 某些实现可能使用不同的字母表或填充字符
  4. 解码时输入必须是有效的 Base32 字符串,除非使用 -i 选项

相关命令

  • base64:更常见的 Base64 编码工具
  • uuencode/uudecode:传统的 Unix 编码工具
  • openssl enc:OpenSSL 的编码/解码功能
相关推荐
酣大智7 小时前
网络协议计时器 & 发包间隔汇总
运维·网络·tcp/ip
Wang's Blog13 小时前
Java 接入Redis: 服务启动停止与后台运行配置
java·服务器·redis
云运维笔记14 小时前
IP地址从入门到精通:网络通信的核心基石
运维·网络·计算机网络
bosins14 小时前
WSL2 启动即崩溃?调整超时参数解决 Docker 阻塞问题
linux·docker·wsl
web守墓人15 小时前
【goed/ui】自定义组件设计思想篇
linux·windows·ui·golang
码农学院15 小时前
企业官网改版后 AI 引用归零的复盘:301 重定向断层让爬虫索引掉线,修复方案与恢复数据
运维·geo优化·ai优化aio
kuroomi15 小时前
Ingress-Nginx与kubernetes 网络
linux·运维·网络·kubernetes
当下新鲜事15 小时前
空调机房冷冻泵与冷却泵技术分析:赛莱默B&G背包式智能变频管道泵的工程应用
运维·物联网·业界资讯
EasyGBS15 小时前
终结训推割裂!EasyGBS×EasyAIS×DLTM,实现AI算法训推一体闭环落地!
服务器·深度学习·安全
daemon.qiang16 小时前
国内虚拟机对接 Freedesktop:Fork xserver、自建 Runner 与提交 MR 实战
linux·ubuntu·centos·gitlab·开源软件