Bash 的 basenc 命令

Bash 的 basenc 命令详解

basenc 是 GNU Coreutils 包中的一个命令行工具,用于对数据进行 Base 编码或解码。它是 base64 命令的扩展版本,支持多种编码格式。

基本语法

bash 复制代码
basenc [OPTION]... [FILE]

主要功能选项

  1. 编码/解码选项:

    • --base64:使用标准的 Base64 编码(RFC 4648)
    • --base64url:使用 URL 安全的 Base64 编码
    • --base32:使用标准的 Base32 编码
    • --base16/--hex:使用十六进制(Base16)编码
    • --base2msbf:使用 MSB-first 的二进制编码
    • --base2lsbf:使用 LSB-first 的二进制编码
    • -d/--decode:解码数据而非编码
  2. 其他常用选项:

    • -w/--wrap=COLS:指定换行字符数(默认 76,0 表示不换行)
    • -i/--ignore-garbage:解码时忽略非字母字符
    • --z85:使用 ZeroMQ 的 Z85 编码(ASCII 85 变种)

使用示例

  1. 基本 Base64 编码:

    bash 复制代码
    echo "Hello World" | basenc --base64
    # 输出:SGVsbG8gV29ybGQK
  2. Base32 编码:

    bash 复制代码
    echo "Hello" | basenc --base32
    # 输出:JBSWY3DPEBLW64TMMQ======
  3. URL 安全的 Base64 编码:

    bash 复制代码
    echo "https://example.com" | basenc --base64url
    # 输出:aHR0cHM6Ly9leGFtcGxlLmNvbQo
  4. 解码 Base64 数据:

    bash 复制代码
    echo "SGVsbG8gV29ybGQK" | basenc --base64 --decode
    # 输出:Hello World
  5. 处理文件:

    bash 复制代码
    basenc --base64 < input.txt > output.txt

应用场景

  1. 数据传输:在 HTTP 等协议中安全传输二进制数据
  2. 数据存储:在 JSON 或 XML 中嵌入二进制数据
  3. URL 处理:对 URL 参数进行安全编码
  4. 加密应用:作为加密/哈希算法的预处理步骤
  5. 证书处理:处理 PEM 格式的证书和密钥

注意事项

  • 编码会增加数据大小(Base64 增加约 33%,Base32 增加约 60%)
  • 解码时要注意输入数据的完整性
  • 对于大文件处理,建议使用文件重定向而非管道
  • 不同编码方案对字母大小写和填充字符的处理可能不同

basenc 命令首次出现在 GNU Coreutils 8.26 版本中,作为 base64 命令的替代和扩展。

相关推荐
西西弗Sisyphus1 小时前
理解 Linux 动态库加载:LD_LIBRARY_PATH
linux
AR-26710-1 小时前
Linux Day31——实操启停服务改端口重启
linux·运维
百度Geek说1 小时前
QCon上海2026:百度 SRE Agent 规模化落地实践解读
运维·自动化运维
叼烟扛炮1 小时前
Linux 学习笔记(五十八):IO 多路复用封神——epoll 底层原理揭秘
linux·运维·服务器·网络·笔记·学习·php
叼烟扛炮2 小时前
Linux 学习笔记(五十一):数据链路层与 ARP 协议——局域网寻址与黑客骗局
linux·网络·网络协议·php·tcpdump
星恒随风2 小时前
Linux网络编程:彻底理解IO多路复用select!从fd_set位图、读写就绪到手写TCP多客户端字典服务器
linux·服务器·网络
陈布衣3 小时前
MySQL(1)_MySQL 5.7.21 Linux 安装笔记
linux·笔记·mysql
分布式存储与RustFS4 小时前
给 RustFS 桶加一层内存缓存:用 Alluxio 让热数据少跑一遍网络
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
Oiiouui5 小时前
linux服务器部署Logto后端与对应前端的实现
linux·服务器·前端·后端