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-Z、a-z、0-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 的故事告诉我们:解决小问题的通用方案,往往会有大用场。