文档首页> IDC服务> 蓝易云:Linux下用base64命令加解密字符串

蓝易云: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

命令解析:

  1. echo -n 'BlueEasy-CDN'
    • 输出字符串 BlueEasy-CDN
    • -n 非常关键:避免在末尾多一个换行符 \n,否则换行也会被编码进去,导致结果不一致。
  2. | 管道符
    • 把前面命令的输出,当作后面 base64 的输入。
  3. base64
    • 把收到的字节流按 base64 规则进行编码,输出一行可见字符。

输出类似:

Qmx1ZUVhc3ktQ0RO

这就是对字符串 BlueEasy-CDN 的 base64 编码结果。


四、对字符串进行解码(“解密”)🔓

1)从编码串还原原文

echo -n 'Qmx1ZUVhc3ktQ0RO' | base64 -d

命令解析:

  1. echo -n 'Qmx1ZUVhc3ktQ0RO'
    • 输出一段 base64 编码后的文本,不附带换行。
  2. base64 -d
    • -d / --decode 表示执行 解码 操作。
    • 把编码串还原成原始字节流。

输出结果会是:

BlueEasy-CDN

如果你把 -n 去掉,某些场景下末尾会多一个换行符,表现为输出多一空行,这在脚本里可能会引发意料之外的问题。


五、对文件内容进行编码/解码 📄

1)把文件内容编码成 base64

base64 config.yaml > config.yaml.b64

命令解析:

  1. base64 config.yaml
    • 从文件 config.yaml 读取内容,按 base64 编码。
  2. > 重定向符
    • 把编码后的结果写入到新文件 config.yaml.b64 中。
  3. 结果文件特点:
    • 全部是 可见字符,适合复制粘贴、远程传输或嵌入其他配置。

2)把 base64 文件还原为原始文件

base64 -d config.yaml.b64 > config.yaml.dec

命令解析:

  1. base64 -d config.yaml.b64
    • 从 config.yaml.b64 读取 base64 编码内容并解码。
  2. >
    • 把解码后的原始内容输出到 config.yaml.dec
  3. 你可以对比 config.yaml 和 config.yaml.dec,内容应该完全一致(字节级)。

六、去掉自动换行的输出(避免多行影响使用)🧱

在某些环境下,base64 会按照固定宽度自动换行(比如 76 列)。如果你想得到一行连续的 base64 字符串,可以这样写(GNU 环境):

echo -n 'BlueEasy-CDN' | base64 -w 0

命令解析:

  1. -w 0 或 --wrap=0
    • 表示每行换行宽度为 0,即 完全不换行。
  2. 输出是一整行连续字符串,非常适合放到配置项或单行环境变量里。

说明: