为什么发明 Base64
许多基于文本的协议 — 包括 SMTP(电子邮件)、HTTP 标头和 HTML — 旨在仅处理某些安全字符。二进制数据(图像、文件、可执行代码)包含与协议控制字符冲突的任意字节值。
问题:包含二进制图像文件的电子邮件可能包含与协议控制字符匹配的字节(例如 ASCII 代码 13 = 回车,代码 10 = 换行)。这些字节将被误解为电子邮件协议命令,从而损坏附件。
解决方案: Base64 将任何二进制数据转换为 64 个可打印 ASCII 字符(A-Z、a-z、0-9、+、/)的子集,这些字符在所有基于文本的协议中都是安全的。 Base64 的原始 RFC (RFC 2045) 是为 MIME 电子邮件附件编写的。

Base64 编码的工作原理:算法
Base64 通过一次处理 3 个字节(24 位)并生成 4 个 Base64 字符(24 位 → 4 × 6 位)来转换二进制数据:
- 获取 3 个字节的二进制数据:
Man= ASCII 77, 97, 110 =01001101 01100001 01101110 - 将 24 位分成四个 6 位组:
010011 010110 000101 101110 - 每个 6 位组使用标准字母表映射到 Base64 字符:
- 010011 = 19 = 'T' - 010110 = 22 = 'W' - 000101 = 5 = 'F' - 101110 = 46 = 'u'
- 结果:“Man”→“TWFu”
完整的 Base64 字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

常见 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 字符串值。

在 ToolDolfen 上编码和解码 Base64
- 打开 Base64编解码工具。
- 要编码: 在输入字段中粘贴文本或输入二进制数据。单击编码。复制 Base64 输出。
- 解码: 将 Base64 字符串粘贴到输入字段中。单击解码。显示原始数据。
该工具可处理标准 Base64(使用 +/ 字符)和 URL 安全 Base64 变体(使用 -_ 代替 +/)。

