什么是 Base64?

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

快速了解

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

工作原理

Base64 编码的工作原理是将三个字节(24 位)的二进制数据无损转换为四个可打印的 ASCII 字符。每个字符精确代表原始数据的 6 位。如果输入长度不能被 3 整除,则自动添加填充字符(=)使输出长度保持为 4 的倍数。这种编码虽然会使数据大小增加约 33%,但绝对确保了复杂的二进制数据可以安全、完整地通过只支持纯 ASCII 文本的系统(如电子邮件、HTTP)进行传输。

主要特点

  • 使用 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 字符。

相关工具

相关术语

相关文章

Base64编码解码详解【2026】- 原理、应用与代码示例

深入系统地学习前端与后端开发中无处不在的 Base64 编码与解码(Encode/Decode)底层运行原理与实战高级应用。彻底掌握如何将复杂的二进制文件数据流安全转换为纯 ASCII 文本字符串序列的核心技术。文章包含 JavaScript、Python、Java 多语言的完整代码实战示例,全面涵盖前端图片 Data URL 优化内联、后端 JWT(JSON Web Token)安全令牌生成、以及跨域 HTTP 基本身份认证(Basic Auth)等高频常见业务场景。

2024-01-15

Data URL详解【2026】- 内联资源嵌入最佳实践

深入系统学习前端 Data URL(数据统一资源定位符)的核心渲染机制原理与高级性能优化应用。全面掌握如何在 CSS 或 HTML 中直接内联嵌入图片、SVG 矢量图标和自定义 Web 字体,从而有效减少 HTTP 网络请求并大幅优化 Web 页面首屏加载时间。本指南涵盖 Base64 编码体积膨胀机制、浏览器缓存策略权衡分析,并附带基于 Webpack/Vite 的完整前端构建实战代码示例!

2024-01-18

JWT原理与应用详解【2026】- JSON Web Token最佳实践

深入学习JWT(JSON Web Token)的底层无状态认证原理、Header/Payload/Signature三部分结构分析与企业级安全实践。本文包含JavaScript、Python、Java多语言的完整实战代码示例,全面涵盖RESTful API单点登录认证、刷新令牌(Refresh Token)双token机制、以及客户端XSS/CSRF防范安全存储策略。

2024-07-26