在线工具集

Base64 编码解码完整指南:原理、用法与常见坑

Base64 把二进制数据塞进文本协议的编码方式。本文讲清楚什么时候该用、URL Safe 变体、以及踩过的坑。

📅 更新于 2026-04-28 · ⏱ 约 3 分钟阅读 · → 立即使用 Base64 编码解码

Base64 是把任意二进制数据编码成 ASCII 字符串的一种方式,常用于把图片塞进 HTML/CSS、把二进制塞进 JSON、把 token 塞进 URL。本指南覆盖原理、URL Safe 变体、文件场景、JWT 应用,以及最常见的踩坑点。

Base64 原理

Base64 把每 3 字节(24 bits)的数据按 6 位一组切成 4 个字符,从 64 个安全字符(A-Z / a-z / 0-9 / + /)中查表替换。不足 3 字节时用 = 填充。

结果:Base64 编码后体积膨胀约 33%(每 3 字节变 4 字符)。

什么时候要用 Base64

  • HTML/CSS Data URL:小图标内嵌进 CSS,省一次 HTTP 请求
  • JWT Token:JWT 三段都是 URL Safe Base64
  • Email 附件:MIME 协议要求二进制附件用 Base64
  • API 传二进制:在 JSON 里传图片、证书、签名
  • Basic Auth:HTTP Authorization: Basic 头部用 Base64 编码 user:password

URL Safe Base64

标准 Base64 的 +/ 在 URL 中需要转义(变成 %2B %2F),不友好。URL Safe Base64 的差别:

  • +-
  • /_
  • 末尾 = 通常省略

JWT 用的就是 URL Safe Base64。本工具勾选「URL Safe」选项即可输出。

文件 ↔ Base64

  • 切换到「文件模式」选择本地文件
  • 文件被读为字节数组,再 Base64 编码
  • 解码模式:粘贴 Base64,工具自动尝试 UTF-8 解码;如失败则提示是二进制

Data URL 完整格式data:image/png;base64,iVBOR... 前缀部分要手动加。本站「图片转 Data URL」工具会自动加。

常见坑

  • 不是所有 Base64 都能 UTF-8 解码:编码的是图片或加密结果时,解码后是乱码,应直接保存为二进制
  • = 填充不是装饰:去掉填充后部分库会解码失败,标准库都能容忍
  • 包含空白字符:Base64 字符串中的换行、空格在解码前要先去掉
  • 大小写敏感:Base64 区分大小写,abcABC 是不同的字节

常见问题

Base64 是加密吗?

不是。Base64 是编码(双向无损可逆),任何人都可解码。需要保密用 AES、RSA 等真正的加密算法。

Base64 比原文件大多少?

约大 33%(每 3 字节变 4 字符)。1 MB 文件 Base64 后约 1.33 MB。

为什么 JWT 用 URL Safe Base64?

JWT token 经常出现在 URL 查询参数或路径中,普通 Base64 的 + 和 / 会与 URL 保留字符冲突。