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 命令的替代和扩展。

相关推荐
牢姐与蒯2 小时前
Linux基本指令及知识点(二)
linux·运维·服务器
小玮看世界2 小时前
[Python]从“脏”数据到优雅实现:一个IoT滑动窗口最大值问题的测试驱动优化实录
linux·前端·python
ᥬ 小月亮2 小时前
SonarQube使用教程(Docker安装)
运维·docker·容器
去伪存真20253 小时前
数字样机、态势推演与3D汇报场景下的平台选型对比
运维·服务器
自动化测试行业观察3 小时前
从“自动化”到“智能化”:TestMan AI测试平台引领软件测试范式转移
运维·自动化测试·人工智能·测试工具·自动化·app测试·移动应用测试
xiaoxiangsiyan3 小时前
运维之前端反调试学习
运维·前端·学习·状态模式
BLi4ee4 小时前
WSL 文件资源管理器左侧 Linux / Ubuntu 入口恢复
linux·ubuntu
深圳市恒星物联科技有限公司4 小时前
破解复杂水务监测难题:投入式压力液位计如何实现“零中断”长效运维?
运维·物联网·智慧城市
RPA机器人就用八爪鱼4 小时前
八爪鱼RPA客服质检自动化:会话记录采集与关键词分析方案
运维·自动化·rpa
Richard.Wong5 小时前
Windows IIS 服务器部署 Vue3 前端项目详细流程
服务器·前端·windows