alltools.one
Encoding
2026-02-18
8 min
alltools.one Team
base64encodingweb-developmentapidata

Base64 编码详解:何时使用及如何使用

你一定在很多地方见过 Base64 字符串——电子邮件附件、Data URI、API 令牌,甚至 JWT 载荷中。那些由字母、数字以及偶尔出现的 +/ 组成的长字符串可能看起来像加密数据,但 Base64 根本不是加密。它是一种编码方案,理解这个区别至关重要。

什么是 Base64 编码?

Base64 使用 64 个可打印的 ASCII 字符将二进制数据转换为文本表示:A-Z、a-z、0-9、+/(使用 = 进行填充)。这使得二进制数据可以安全地通过纯文本系统传输。

编码结果总是比原始数据大 33%——这是文本安全性的代价。

使用我们的 Base64 编码器 亲自尝试——粘贴任何文本即可看到即时转换。所有编码都在你的浏览器中完成,因此你的数据保持私密。

Base64 工作原理

编码过程将输入分成 6 位组(因为 2^6 = 64),并将每个组映射到 64 个字符中的一个。当输入长度不能被 3 整除时,会出现 = 填充。

何时使用 Base64

在 HTML/CSS 中嵌入图片

Data URI 可以消除小图片的 HTTP 请求。非常适合 10KB 以下的图标。对于较大的图片,请先使用我们的 图片优化工具 进行优化。

API 数据传输

当 API 需要在 JSON 载荷中传输二进制数据时,Base64 是标准编码方式。

JWT 令牌

JSON Web Token 使用 Base64URL 编码。使用我们的 JWT 编码器/解码器 解码任何 JWT。

基本认证

HTTP Basic Auth 将凭据编码为 Base64。重要提示:这是编码,不是加密。请务必使用 HTTPS。

常见的 Base64 错误

  1. 将其视为加密 — Base64 提供零安全性。使用我们的 哈希生成器 进行实际哈希
  2. 编码大文件 — 33% 的大小增加在大规模场景下很重要
  3. 双重编码 — 在编码之前检查数据是否已经编码
  4. 忘记填充 — 某些系统会去除 = 填充字符

不同语言中的 Base64

JavaScript: btoa('Hello') / atob('SGVsbG8=')

Python: base64.b64encode(b'Hello') / base64.b64decode('SGVsbG8=')

命令行: echo -n 'Hello' | base64

常见问题

Base64 编码和加密一样吗?

不一样。Base64 任何人都可以自由解码。请使用专业的加密方式来保障安全。

为什么 Base64 会使数据变大?

三个字节变成四个字符(每个 6 位而不是 8 位),导致 33% 的增长。

相关资源

Published on 2026-02-18
Base64 Encoding Explained: When and How to Use It | alltools.one