Base64 编码详解:它是什么、如何工作及何时使用

📅 2026-05-07 · 📂 编码原理 · ⏱ 10 分钟阅读

你每天都在用 Base64,你可能自己都不知道。邮件附件、网页里嵌的小图片、JWT Token 那串乱码——背后都是它。但你有没有想过,为什么需要这么个东西?

核心原因很简单:很多传输协议只认文本,不认二进制。Base64 就是二进制数据穿上文本的外衣,安全地通过只认 ASCII 的通道。读完这篇文章,试试我们的 在线 Base64 编解码工具 亲手验证一下。

什么是 Base64?

Base64 用 64 个可打印字符来表示任意二进制数据。这 64 个字符包括 A-Z、a-z、0-9、+ 和 /,再加上 = 作为填充。

说白了就是:二进制数据不能直接当文本传,Base64 给它做了一层"文本化"转换。代价是体积增加大约 33%。

Base64 的工作原理

编码过程三步走:

步骤 1:将二进制数据分组

每 3 个字节(24 位)分成一组。不够 3 的倍数就补填充字节。

步骤 2:将 24 位分成 4 个 6 位块

每个 3 字节组拆成 4 个 6 位的块。6 位能表示 0-63,正好对应那 64 个字符。

步骤 3:映射到 Base64 字符集

每个 6 位的数值对应一个字符:

数值范围对应字符
0-25A-Z
26-51a-z
52-610-9
62+
63/
填充=

示例:编码 "Man"

来实操一下 "Man" 是怎么变成 "TWFu" 的:

原始数据:    M         a         n
ASCII:       77        97        110
二进制:      01001101  01100001  01101110

重新分组:  010011  010110  000101  101110
十进制:    19      22      5       46
Base64:    T       W       F       u

结果: "TWFu"

常见的 Base64 变体

Base64 的常见应用场景

1. 电子邮件附件(MIME)

SMTP 协议最早只支持纯文本。为了让图片、文档能通过邮件传,MIME 标准就用 Base64 把附件编码成文本。

2. Data URI

前端性能优化里经常用到。小图片直接转成 Base64 嵌入 HTML 或 CSS,省一次 HTTP 请求:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...">

3. JWT(JSON Web Token)

JWT 的三个部分(Header、Payload、Signature)全是用 URL-safe Base64 编码的。这就是为什么 JWT 看起来是一串由点和字母数字组成的字符串。

4. HTTP Basic 认证

HTTP Basic Auth 把用户名和密码拼起来,Base64 编码后塞进 Authorization 头里。

Base64 的优缺点

优点

缺点

重要提示:Base64 不是加密!敏感数据要先加密(比如 AES),再 Base64 编码传输。

使用在线工具箱的 Base64 工具

我们的 在线 Base64 编解码工具 支持:

此外还有 URL 编解码哈希生成 等工具。