什么是 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 工具:
使用步骤(文本编码)
- 访问 tool.tl/base64-encoder
- 在输入框粘贴需要编码的文本
- 右侧实时显示 Base64 编码结果
- 一键复制编码后的字符串
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 工具完全免费,在浏览器本地运行,数据不会上传服务器。