什么是 Base64?

Base64 是一种将二进制数据转换为 ASCII 字符串格式的编码方案。它使用 64 个可打印字符(A-Z、a-z、0-9、+、/)来编码二进制数据。

快速了解

全称Base64 编码
创建时间1987 年(隐私增强邮件规范)
规范文档官方规范

工作原理

Base64 编码的工作原理是将三个字节(24 位)的二进制数据转换为四个 ASCII 字符。每个字符代表原始数据的 6 位。如果输入长度不能被 3 整除,则添加填充字符(=)使输出长度为 4 的倍数。这种编码会使数据大小增加约 33%,但确保数据可以安全地通过只支持 ASCII 文本的系统传输。

主要特点

  • 使用 64 个可打印 ASCII 字符进行编码
  • 输出比输入大约增加 33%
  • 当输入长度不能被 3 整除时使用 '=' 字符填充
  • URL 安全变体使用 '-' 和 '_' 代替 '+' 和 '/'
  • 可逆编码 - 可以解码回原始二进制数据
  • 不是加密 - 不提供安全性,只是编码

常见用途

  1. 使用 data URI 在 HTML/CSS 中嵌入图片
  2. 编码电子邮件附件(MIME)
  3. 在 JSON 或 XML 中存储二进制数据
  4. 在 HTTP 基本认证中编码凭据
  5. 通过纯文本协议传输二进制数据

示例

loading...
Loading code...

常见问题

Base64 编码和加密是一样的吗?

不是,Base64 不是加密。它只是一种将二进制数据转换为文本格式的编码方案。任何人都可以在没有密钥的情况下解码 Base64 数据。如果需要安全性,请使用 AES 等正规加密算法。

为什么 Base64 会使数据大小增加 33%?

Base64 将每 3 个字节(24 位)转换为 4 个字符(每个字符代表 6 位)。这个 4/3 的比例导致大约 33% 的大小增加,再加上可能的填充字符。

Base64 和 Base64URL 有什么区别?

Base64URL 是 URL 安全变体,它用 '-' 替换 '+',用 '_' 替换 '/',通常省略填充字符 '='。这使其可以安全地用于 URL、文件名和 JWT 令牌。

什么时候应该使用 Base64 编码?

当你需要通过纯文本通道传输二进制数据、在 HTML/CSS 中嵌入图片、在 JSON/XML 中包含二进制数据或编码电子邮件附件时,应该使用 Base64。

Base64 可以编码任何类型的数据吗?

是的,Base64 可以编码任何二进制数据,包括图片、文档、音频文件和加密数据。它将任何字节序列转换为可打印的 ASCII 字符。

相关工具

相关术语

相关文章