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 的编码/解码功能
相关推荐
程序员老邢8 分钟前
【产品底稿 07】商助慧 Admin 运维模块落地:从 “能跑” 到 “能运维”,3 个页面搞定日常排障
java·运维·经验分享·spring boot·后端
一口Linux34 分钟前
Linux C编程 | 从0实现telnet获取程序终端控制权
linux·运维·c语言
willhuo40 分钟前
Certbot工具在CentOS 7.9上申请和配置SSL证书完整教程
linux·centos·ssl
zhangrelay2 小时前
三分钟云课实践速通--大学物理--python 版
linux·开发语言·python·学习·ubuntu·lubuntu
℡終嚸♂6802 小时前
n8n 未初始化接管到读取 Flag Writeup
服务器·web安全·web·n8n
风翼靓崽2 小时前
linux命令杂记 - 杂乱无章
linux·运维·服务器
handler012 小时前
Linux 进程探索:从 PCB 管理到 fork() 的写时拷贝
linux·c语言·c++·笔记·学习
solihawk2 小时前
服务器内存被谁“偷”走了?
服务器·数据库
域中四大3 小时前
rk3568中修改波特率
linux·运维
互联网推荐官3 小时前
大模型应用开发的上下文工程与推理链路深度拆解
大数据·运维·人工智能