Base64 编码解释:将二进制数据转换为文本

Base64 编码将二进制数据转换为文本安全字符集(A-Z、a-z、0-9、+、/),可以嵌入基于文本的协议(如电子邮件、JSON 和 HTML),而不会损坏数据。

Binary data being transformed through Base64 encoding algorithm visualization

为什么发明 Base64

许多基于文本的协议 — 包括 SMTP(电子邮件)、HTTP 标头和 HTML — 旨在仅处理某些安全字符。二进制数据(图像、文件、可执行代码)包含与协议控制字符冲突的任意字节值。

问题:包含二进制图像文件的电子邮件可能包含与协议控制字符匹配的字节(例如 ASCII 代码 13 = 回车,代码 10 = 换行)。这些字节将被误解为电子邮件协议命令,从而损坏附件。

解决方案: Base64 将任何二进制数据转换为 64 个可打印 ASCII 字符(A-Z、a-z、0-9、+、/)的子集,这些字符在所有基于文本的协议中都是安全的。 Base64 的原始 RFC (RFC 2045) 是为 MIME 电子邮件附件编写的。

Bit-splitting pipeline diagram showing how 3 bytes of binary data transform into four 6-bit Base64 characters


Base64 编码的工作原理:算法

Base64 通过一次处理 3 个字节(24 位)并生成 4 个 Base64 字符(24 位 → 4 × 6 位)来转换二进制数据:

  1. 获取 3 个字节的二进制数据: Man = ASCII 77, 97, 110 = 01001101 01100001 01101110
  2. 将 24 位分成四个 6 位组: 010011 010110 000101 101110
  3. 每个 6 位组使用标准字母表映射到 Base64 字符:

- 010011 = 19 = 'T' - 010110 = 22 = 'W' - 000101 = 5 = 'F' - 101110 = 46 = 'u'

  1. 结果:“Man”→“TWFu”

完整的 Base64 字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

Base64 64-character safe ASCII index lookup table matrix


常见 Base64 用例

1。电子邮件附件 (MIME) 电子邮件协议基于文本。文件附件在包含在电子邮件中之前经过 Base64 编码。

2。 HTML/CSS 中的数据 URL 小图像和字体可以作为 Base64 编码的数据 URL 直接嵌入 HTML 或 CSS 中:

<img src="data:image/png;base64,iVBORw0KGgo..." alt="Embedded image">

这消除了对小图标的额外 HTTP 请求。

3。 API 身份验证 HTTP 基本身份验证将凭据编码为 Base64:用户名:密码 → dXNlcm5hbWU6cGFzc3dvcmQ=(注意:Base64 不是加密 — 仅通过 HTTPS 使用)

4。带有二进制数据的 JSON 有效负载 当 API 需要在 JSON 响应中包含二进制数据(例如生成的 PDF 或图像)时,Base64 编码允许将二进制数据安全地嵌入为 JSON 字符串值。

Common real-world Base64 use cases including data URIs, HTTP basic auth, JWTs, and email attachments


在 ToolDolfen 上编码和解码 Base64

  1. 打开 Base64编解码工具。
  2. 要编码: 在输入字段中粘贴文本或输入二进制数据。单击编码。复制 Base64 输出。
  3. 解码: 将 Base64 字符串粘贴到输入字段中。单击解码。显示原始数据。

该工具可处理标准 Base64(使用 +/ 字符)和 URL 安全 Base64 变体(使用 -_ 代替 +/)。

Decoding pipeline diagram showing reconstruction of exact original binary streams from Base64 text

ToolDolfen Base64 Encoder and Decoder user interface workflow

推荐配套指南

从此主题组中探索补充教程和实用程序,以增强您的数字工作流程:

URL 百分比编码:为什么 URL 将空格替换为 %20(RFC 3986 指南)经过验证的标准和浏览器内的实用分步教程HEX、RGB 和 HSL:CSS 和设计的完整颜色模型指南具有经过验证的标准和浏览器内的实用分步教程强密码的数学:熵、NIST 准则和密码长度具有经过验证的标准和浏览器内的实用分步教程如何在没有云上传的情况下安全地合并 PDF 文件连接相关数据和媒体的补充跨格式工作流程工具。
推荐实用程序:Base64 编码器/解码器在浏览器中实时执行此工作流程,实现零服务器上传和 100% 客户端隐私。
Base64编解码工具
Base64编解码工具

常见问题解答 (FAQ)

查看关于此操作流程常见问题的快速与权威解答。

Base64 是一种加密形式吗?

不。Base64 是编码,而不是加密。任何拥有编码字符串的人都可以完全逆转它——无需密钥或密码即可对其进行解码。不使用Base64来保护敏感数据;使用适当的加密算法,例如 AES-256。

Base64编码后数据会变大多少?

Base64 编码的数据比原始二进制数据大约大 33%。每 3 个字节的二进制数据变成 4 个 Base64 字符。以 Base64 编码的 3MB 图像变成大约 4MB 的文本。

为什么有些 Base64 字符串以“=”或“==”结尾?

Base64 以 3 字节组处理数据。如果输入数据长度不能被 3 整除,则输出会用 1 个或 2 个“=”字符填充,以使输出成为 4 个字符的倍数。

Bilal Ahmad