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

相关推荐
bksczm10 分钟前
Linux之基础开发工具(Ubuntu)之编译器
linux·运维·服务器
何中应1 小时前
Ansible安装&使用
运维·自动化·ansible·运维开发·自动化运维
Jun6261 小时前
【RV1103】AD4115实现8通道ADC采样,MQTT数据传输,1K采样率
linux·python
嵌入式×边缘AI:打怪升级日志1 小时前
DS18B20 Linux 驱动开发实战:从时序图到温度读取的保姆级教学
linux·驱动开发
橘颂TA1 小时前
【Linux】自旋锁
linux·开发语言·数据库·c++
一脸dio样7541 小时前
第5章 保护模式进阶,向内核迈进
linux·开发语言
byoass1 小时前
自动化任务系列之六:自动整理文件——按时间/关键字分类归档实战
运维·网络·安全·自动化·云计算
代码中介商2 小时前
Linux 信号处理与进程控制深度解析
linux·运维·信号处理
姚青&2 小时前
Linux 文件处理命令
linux·运维·服务器
枷锁—sha2 小时前
【CTFshow-pwn系列】03_栈溢出【pwn 072】详解:无字符串环境下的多级 Ret2Syscall 与 BSS 段注入
服务器·网络·汇编·笔记·安全·网络安全