蓝易云:Linux下用base64命令加解密字符串
发布时间:2025-12-14 00:01       
蓝易云:Linux 下用 base64 命令给字符串“加密/解密”实战指南 🔐
先把丑话说在前面:
base64 是“编码”,并非真正意义上的加密。它只能做轻度“遮掩”,安全强度几乎为零,千万不要指望它保护核心机密。
一、先搞清楚:base64 到底干嘛用?🤔

在 Linux 下,base64 命令的核心作用只有两件事:
- 把任意二进制数据转换成 可打印字符(A–Z、a–z、0–9、+、/ 等),方便在终端、配置文件、接口传输。
- 再从这些可打印字符中,还原出原始数据。
所以它适合的典型场景是:
- 把一段配置、Token 做简单“混淆”,避免一眼看穿。
- 把二进制文件(如证书、图片)转成纯文本,方便复制粘贴或嵌入到配置里。
但请记住:
任何会用命令行的人,三秒就能把 base64 还原回去,所以只能当“遮羞布”,不能当“保险柜”。
二、命令结构快速过一遍
base64 [选项] [文件]
- 不带文件:默认从标准输入读取(stdin)。
- 不带
-d/--decode:默认是 编码。 - 带
-d或--decode:执行 解码。
命令解析说明:
base64:调用系统自带 base64 工具(通常来自 coreutils)。[选项]:例如-d解码、-w 0不换行。[文件]:要处理的文件名,不写则从管道或键盘输入读取。
三、对字符串进行编码(“加密”)🔒
1)最常用的字符串编码写法
echo -n 'BlueEasy-CDN' | base64
命令解析:
echo -n 'BlueEasy-CDN'- 输出字符串
BlueEasy-CDN。 -n非常关键:避免在末尾多一个换行符\n,否则换行也会被编码进去,导致结果不一致。
- 输出字符串
|管道符- 把前面命令的输出,当作后面
base64的输入。
- 把前面命令的输出,当作后面
base64- 把收到的字节流按 base64 规则进行编码,输出一行可见字符。
输出类似:
Qmx1ZUVhc3ktQ0RO
这就是对字符串 BlueEasy-CDN 的 base64 编码结果。
四、对字符串进行解码(“解密”)🔓
1)从编码串还原原文
echo -n 'Qmx1ZUVhc3ktQ0RO' | base64 -d
命令解析:
echo -n 'Qmx1ZUVhc3ktQ0RO'- 输出一段 base64 编码后的文本,不附带换行。
base64 -d-d/--decode表示执行 解码 操作。- 把编码串还原成原始字节流。
输出结果会是:
BlueEasy-CDN
如果你把 -n 去掉,某些场景下末尾会多一个换行符,表现为输出多一空行,这在脚本里可能会引发意料之外的问题。
五、对文件内容进行编码/解码 📄
1)把文件内容编码成 base64
base64 config.yaml > config.yaml.b64
命令解析:
base64 config.yaml- 从文件
config.yaml读取内容,按 base64 编码。
- 从文件
>重定向符- 把编码后的结果写入到新文件
config.yaml.b64中。
- 把编码后的结果写入到新文件
- 结果文件特点:
- 全部是 可见字符,适合复制粘贴、远程传输或嵌入其他配置。
2)把 base64 文件还原为原始文件
base64 -d config.yaml.b64 > config.yaml.dec
命令解析:
base64 -d config.yaml.b64- 从
config.yaml.b64读取 base64 编码内容并解码。
- 从
>- 把解码后的原始内容输出到
config.yaml.dec。
- 把解码后的原始内容输出到
- 你可以对比
config.yaml和config.yaml.dec,内容应该完全一致(字节级)。
六、去掉自动换行的输出(避免多行影响使用)🧱
在某些环境下,base64 会按照固定宽度自动换行(比如 76 列)。如果你想得到一行连续的 base64 字符串,可以这样写(GNU 环境):
echo -n 'BlueEasy-CDN' | base64 -w 0
命令解析:
-w 0或--wrap=0- 表示每行换行宽度为 0,即 完全不换行。
- 输出是一整行连续字符串,非常适合放到配置项或单行环境变量里。
说明: