跳到主要内容
FreeOnlineTools Go
简体中文
解释

什么是 Base64 编码?完整说明

作者:FreeOnlineTools Team · 更新日期:2026-09-02

快速解答

Base64 编码使用 64 个可打印字符(A-Z、a-z、0-9、+、/)将二进制数据转换为文本。每 3 个字节的输入变成 4 个 Base64 字符。 Base64 是可逆的(不是加密),数据大小会增加约 33%。使用我们免费的 Base64 编码器和解码器在浏览器中进行转换。

介绍

Base64 是一种二进制到文本的编码方案,可将二进制数据转换为使用 64 个可打印字符的 ASCII 字符串表示形式。它由 RFC 4648 定义,通常用于对需要通过设计用于处理文本的媒体传输的数据进行编码 - 电子邮件附件 (MIME)、HTML/CSS 中的数据 URLs、JWT 令牌部分和包含二进制数据的 JSON 有效负载。 Base64 是编码,而不是加密——它是完全可逆的并且不需要密钥。任何人都可以解码 Base64,因此它不提供机密性。

步步

  1. 了解字符集

    Base64 使用 64 个字符:A-Z (26)、a-z (26)、0-9 (10)、+ 和 / (2)。当输入长度不是 3 的倍数时,= 字符用于填充。URL 安全变体将 + 替换为 - 并将 / 替换为 _ 并省略填充。

  2. 了解编码的工作原理

    Base64 处理 3 字节(24 位)块中的输入。每个 24 位块分为四个 6 位组。每个 6 位值 (0-63) 映射到 64 个字符之一。如果输入不是 3 的倍数,则添加填充 (=):1 个字节输入 → 2 个 Base64 字符 + ==,2 个字节 → 3 个字符 + =。

  3. 了解开销大小

    Base64 将数据大小增加了大约 33% — 每 3 个字节变成 4 个字符。当 Base64 编码时,1 MB 文件变为约 1.33 MB。此开销是纯文本兼容性的权衡。

  4. 区分编码和加密

    Base64 是编码,而不是加密。它是可逆的,无需钥匙——任何人都可以解码。 Base64 不提供保密性;它仅将二进制转换为文本以进行传输。切勿使用 Base64 来存储密码或机密。

示例

对文本进行编码

输入: Hello, World!

输出: SGVsbG8sIFdvcmxkIQ==

编码二进制数据(显示为十六进制)

输入: 字节:0x00 0x01 0x02

输出: AAEC

URL-安全 Base64 (JWT 风格)

输入: Standard: SGVsbG8= → URL-safe: SGVsbG8 (no padding, - and _ for + and /)

输出: 用于 JWT 令牌和 URL 参数

常见问题

  • 将 Base64 视为加密 —Base64 是可逆的,无需密钥。任何人都可以解码它。切勿使用它来保护敏感数据。
  • 非 ASCII 字符 — 天真的 btoa() 在 Unicode 上抛出异常。使用 TextEncoder + btoa(unescape(encodeURIComponent(text))) 或支持 UTF-8 的工具。
  • 删除填充 — = 填充是编码的一部分。删除它会破坏解码(尽管某些解码器可以重建它)。
  • 大小开销 —Base64 使数据大小增加约 33%。对于大文件来说,这一点很重要;考虑是否需要编码。

提示

  • 对数据 URLs 使用 Base64 将小图像嵌入到 HTML/CSS 中,无需单独的 HTTP 请求。
  • 对 URLs 和 JWT 标记使用 URL 安全 Base64 (将 + 替换为 -,将 / 替换为 _,剥离填充)。
  • Base64 不是加密——使用它是为了传输兼容性,而不是为了保密。
  • 使用我们的 Base64 编码器和解码器在您的浏览器中进行即时、私密的转换。

相关工具

相关指南

参考