Base64 的前世今生:从邮件附件到现代网络

一个为"电子邮件"而生的编码

1980 年代的电子邮件只能传输 ASCII 文本,附件里的二进制数据(图片、压缩包)一经过邮件系统就会损坏。1990 年代早期的 PEM(Privacy Enhanced Mail,RFC 989/1421)提出了一个解决办法:把任意二进制数据重编码为 64 种安全字符,使其成为纯文本的一部分——这就是 Base64 的雏形。

1996 年,RFC 2045(MIME) 正式定义了今天通用的 Base64 编码,用于电子邮件附件的传输。此后它的应用远远超出了邮件。

原理:3 个字节变 4 个字符

Base64 的核心思想很简单:

  • 取 3 个字节(24 位),按 6 位一组切成 4 组;
  • 每组 6 位(0~63)对应一张 64 字符表:A-Za-z0-9+/
  • 末尾不足 3 字节时用 = 填充。

所以 Base64 编码后的体积约为原数据的 4/3 倍(约增加 33%)。

现代应用

  • 邮件附件:MIME 编码(经典用法);
  • 图片内联:HTML/CSS 里的 data:image/png;base64,...,减少请求数;
  • 令牌与协议:JWT 的 Header/Payload 使用 Base64URL(-_ 替代 +/,去除 =);
  • 文本化二进制:把二进制塞进 JSON、XML、API 参数、二维码等文本载体。

常见误区

  • Base64 不是加密:它只是"可逆的编码",任何人拿到都能解码,不要用它保护敏感数据;
  • Base64 体积会增大(约 33%),不适合直接存储大型二进制;
  • Base64 只是众多 base 编码之一(还有 Base32、Base16/Hex 等)。

小结

一个为 1987 年电子邮件设计的编码方案,今天依然活跃在现代网络的最前线。Base64 的故事告诉我们:解决小问题的通用方案,往往会有大用场