Base64 编码解码:原理详解与在线工具使用指南

工具 次閱讀

什么是 Base64?

Base64 是一种将二进制数据转换为纯文本字符串的编码方式,使用 64 个可打印 ASCII 字符(A-Z、a-z、0-9、+、/)表示任意二进制数据。名称中的「64」正是指这 64 个字符。

Base64 编码后的字符串只包含安全的文本字符,可以在任何纯文本协议(如 HTTP、Email、JSON)中安全传输。

Base64 的常见应用场景

  • 图片嵌入 HTML/CSS:将小图片转换为 Base64 Data URI 直接嵌入代码,减少 HTTP 请求
    <img src="data:image/png;base64,iVBORw0KGgo...">
  • 邮件附件:MIME 标准使用 Base64 编码二进制附件,使其能在文本协议中传输
  • JWT Token:JSON Web Token 的 Header 和 Payload 部分使用 Base64URL 编码
  • API 认证:HTTP Basic Auth 使用 Base64 编码用户名和密码(注意:仅做编码,不提供加密)
  • 数据存储:在 JSON 或 XML 中存储二进制数据(如图片、证书)

Base64 编码工具

tool.tl 提供两个 Base64 工具:

使用步骤(文本编码)

  1. 访问 tool.tl/base64-encoder
  2. 在输入框粘贴需要编码的文本
  3. 右侧实时显示 Base64 编码结果
  4. 一键复制编码后的字符串

Base64 编码原理(简要)

Base64 将每 3 个字节(24 位)的数据转换为 4 个 Base64 字符(每个 6 位)。因此 Base64 编码后的数据体积约为原始数据的 4/3 倍(增加约 33%)。

# Python
import base64

# 编码
encoded = base64.b64encode(b"Hello, World!").decode()
print(encoded)  # SGVsbG8sIFdvcmxkIQ==

# 解码
decoded = base64.b64decode("SGVsbG8sIFdvcmxkIQ==").decode()
print(decoded)  # Hello, World!

Base64 vs Base64URL

标准 Base64 使用 +/,在 URL 中需要转义。Base64URL 将 + 替换为 -/ 替换为 _,去掉末尾的 = 填充,可以直接用于 URL 和文件名,JWT 使用的就是 Base64URL。

常见问题

Base64 是加密吗?

不是。Base64 只是编码(Encoding),不是加密(Encryption)。任何人都可以轻易解码 Base64 字符串,它不提供任何保密性。如果需要保护数据,应使用 AES 等加密算法。

末尾的 == 是什么意思?

Base64 以 3 字节为一组进行编码,如果原始数据字节数不是 3 的倍数,会用 = 填充到 4 的倍数。一个 = 表示原始数据末尾有 2 个字节,两个 = 表示只有 1 个字节。

工具是免费的吗?

是的,tool.tl 的所有 Base64 工具完全免费,在浏览器本地运行,数据不会上传服务器。