每次提到 Base64,大多数人第一反应就是「把图片转成字符串」。没错,这是最常见的用法,但 Base64 能干的事远不止这一件。
1. 图片转 Base64:减少 HTTP 请求
把体积小的图标、Logo 直接转成 Base64 嵌进 CSS 或 HTML 里,能少发一次 HTTP 请求。尤其适合那些几十 KB 以内的小图。
操作方式:打开 Base64 图片编码器,上传图片 → 自动生成 Data URL → 复制粘贴到 CSS 的 background-image: url(data:image/png;base64,...) 里。
注意事项:
- 建议只用于 10KB 以下 的小图
- 大图转 Base64 反而会让 CSS/HTML 文件膨胀约 33%,得不偿失
- 图标类的 SVG 最适合转 Base64
2. URL 参数里传二进制数据
有些场景你需要把二进制数据塞进 URL 里,比如 API 的回调 URL 带了一个加密的 token。但 URL 只支持 ASCII 字符,二进制数据直接放进去会出问题。
Base64 就是解决方案。把二进制数据编码成纯 ASCII 的字符串,就能安全地放进 URL 了。
不过要注意:标准的 Base64 包含 +、/、= 这三个在 URL 里有特殊含义的字符。所以 URL 场景下要用 URL-safe Base64(把 + 换成 -,/ 换成 _,去掉末尾的 =)。
用 URL 编码/解码工具 配合 Base64 一起使用,效果最佳。
3. HTTP Basic Auth 认证
Web 开发中常见的 Basic 认证,就是把 用户名:密码 用 Base64 编码后放在 HTTP Header 里。
# 实际就是 base64("admin:123456")
Authorization: Basic YWRtaW46MTIzNDU2
这种编码只是为了传输,不是加密。Base64 是可以直接解码的,所以 Basic Auth 一定要配合 HTTPS 使用,否则用户名密码等于明文传输。
用 Base64 编码/解码工具 可以随时验证你的 Basic Auth Token 内容。
4. 在 JSON/XML 里嵌入二进制数据
传输配置文件、数字签名或者小文件的校验值时,经常需要在 JSON 里放二进制数据。JSON 本身就是文本格式,直接塞二进制会乱码。
Base64 可以把任意二进制数据(图片、PDF、压缩包)变成纯文本,安全嵌入 JSON。
{
"filename": "report.pdf",
"content": "JVBERi0xLjcN...base64编码后的内容..."
}
配合 JSON 格式化工具 查看结构很方便。
5. 邮件附件和 MIME 编码
你发的每一封带附件的邮件,底层都是用 Base64 传输的。SMTP 协议只支持 7-bit ASCII,所以附件(图片、文档)必须编码后才能发。
这个你可能自己用不上,但了解后就能理解:为什么有时候发邮件附件会变大 30% 左右——因为 Base64 编码本身有 33% 的体积膨胀。
小结
Base64 是个编码方案,不是加密方案。任何 Base64 编码的内容,三秒钟就能解码回去。永远不要用 Base64 来保护敏感数据。
| 场景 | 工具推荐 |
|---|---|
| 图片转 Base64 | Base64 图片编码器 |
| 文本/文件 Base64 编解码 | Base64 编码/解码工具 |
| URL 参数编码 | URL 编码/解码工具 |
| 其他编码格式 | HTML 编码/解码 · ROT13/ROT47 · 摩斯电码 |