Base64 - 编码与解码

Base64 使用可打印字符表示二进制数据,常用于在只适合传输文本的场景中承载二进制内容。

Base64 是编码方式,不是加密方式。任何人都可以直接解码,因此不能用它保护密码、Token 或其他敏感信息。

基本原理

Base64 将每 3 个字节(24 位)拆分为 4 组 6 位数据,再把每组映射到 Base64 字符表。输入长度不足 3 字节时,通常使用 = 补齐输出。

标准字符表包含:

A-Z a-z 0-9 + /

常用参数

  • -d--decode:解码。
  • -w COLS--wrap=COLS:编码时每 COLS 个字符换行;0 表示不自动换行。
  • -i--ignore-garbage:解码时忽略无法识别的字符。

使用示例

# 编码字符串;printf 可避免额外编码末尾换行符
printf '%s' 'str' | base64
 
# 编码文件
base64 filename
 
# 解码字符串
printf '%s' 'c3Ry' | base64 -d
 
# 解码到文件
base64 -d input.b64 > output.bin

不要仅凭编码串的开头猜测内容类型。需要确认数据时,应在安全环境中解码,并避免把未知内容直接交给 Shell 或其他解释器执行。

参考资料