什么是base64

Base64 是一种把二进制数据转换成纯文本字符串的编码方式,它能让图片、文件、特殊字符这些 “非文本数据”,安全地在文本环境(比如 URL、邮件、JSON、终端)里传输和存储。

工作原理:

  1. 把任意数据(比如图片、字符串)当成二进制字节流。

  2. 每 3 个字节(24 位)拆成 4 个 6 位的小段。

  3. 每个小段对应 Base64 表中的 1 个字符(A-Za-z0-9+/,共 64 个字符,所以叫 Base64)。

  4. 不足 3 字节的部分用 = 补全,保证长度是 4 的倍数。

举个例子:

字符串 HelloWorld(不带换行)编码后是 SGVsbG9Xb3JsZAo=,你解码它,就能还原回原来的字符串。

在macos中的terminal中,使用echo命令即可演示。

1
2
echo "HelloWorld" | base64
SGVsbG9Xb3JsZAo=

其中|是管道符号,他把左边的结果作为右边的输入结果。

echo:回声,把右边的内容打印到终端上。

1
2
echo "SGVsbG9Xb3JsZA==" | base64 -d 
HelloWorld

多次编解码

编码

1
2
3
4
echo "HelloWorld" | base64
SGVsbG9Xb3JsZAo=
echo "SGVsbG9Xb3JsZAo=" | base64
U0dWc2JHOVhiM0pzWkFvPQo=

解码

1
2
3
4
echo "U0dWc2JHOVhiM0pzWkFvPQo=" | base64 -d
SGVsbG9Xb3JsZAo=
echo "SGVsbG9Xb3JsZAo=" | base64 -d
HelloWorld