base64 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于文本处理命令族(见文本处理命令族)。把二进制塞进只能传文本的地方,就靠它。
base64 把任意二进制数据编码成纯 ASCII 文本(64 个字符集),也能反向解码回来。它不加密,只是"换一种安全可传输的表示"。
一、基本用法
bash
base64 image.png > image.b64 # 编码成文本
base64 -d image.b64 > image.png # -d 解码回二进制
echo -n "hello" | base64 # 输出 aGVsbG8=默认读文件或 stdin,输出到 stdout。
-d(decode)反向。注意 echo 默认带换行,加-n或printf避免多编码一个换行。
二、管道与文件
bash
cat cert.pem | base64 # 证书编码进文本字段
base64 -w0 file # -w0 不换行(单行输出,适合嵌 JSON)
base64 -i in.bin -o out.b64 # 显式指定输入输出文件
-w(wrap)控制每行多少字符,默认 76 换行;-w0强制单行,常嵌进 JSON/配置。处理证书、密钥、二进制附件离不开它。
三、为什么需要 base64
bash
# 邮件附件、JSON 字段、HTTP header 只能传文本
# 二进制(图片/压缩包)直接塞会损坏 → 先 base64 变文本base64 解决的是"传输通道只认文本"的问题(SMTP、JSON、某些 API)。它不是加密——任何人都能
-d解回原样,敏感数据还得再加密。
四、实战:快速编解码验证
bash
echo -n "token123" | base64 | base64 -d # 编码再解码验证一致调试"为什么我 base64 后解不开",常做编码→解码往返确认没多换行、没截断。
相关命令
一句话总结
base64 = 二进制↔文本编解码(非加密,只是安全表示):base64 file 编码、base64 -d 解码;-w0 单行输出适合嵌 JSON/配置;解决"通道只传文本"问题(邮件附件/JSON/API),敏感数据需另加密;echo 记得 -n 避免多编码换行。