Tool Detail

Base64 编解码

文本与 Base64 相互转换。

作者:VillaB · 更新:2026-02-24

提示:本工具使用浏览器内置 Base64,适合文本场景。

使用说明

Base64 是什么

Base64 是一种把二进制数据用 64 个可打印字符表示出来的编码方式(字符集为 A-Z a-z 0-9 + /,末尾用 = 补齐)。它不是加密算法,任何人都能直接解开——它只解决「数据能不能安全穿过只允许文本的通道」这个问题,比如放在 URL、JSON 字段、HTTP 头或邮件正文里。

编码后体积会增大约 33%(每 3 字节变成 4 个字符),这是这种编码的固有代价。

怎么用这个工具

  1. 选择模式:编码(文本 → Base64)或解码(Base64 → 文本)
  2. 输入内容,结果即时显示,可一键复制
  3. 需要确认效果可以点「填入示例」;要把这次结果发给别人,用「分享链接」

中文和其他非 ASCII 字符会先按 UTF-8 转成字节再编码,因此不会出现乱码。

延伸阅读

常见问题

Base64 是加密吗?能用来保护密码吗?

不是加密,不能用来保护任何敏感数据。 Base64 只是编码,任何人拿到字符串都能零成本还原成原文。它常出现在 JWT 的 payload、Basic 认证头里,看起来"像密文",但那只是因为内容被编码了,里面的信息是明文可读的。要保护数据请用真正的加密(AES、TLS)。

为什么中文编码后解码会乱码?

Base64 编码的是字节,而字节怎么解释成字符取决于字符集。如果编码端用 UTF-8、解码端按 Latin-1(或 GBK)解释,就会出现乱码。本工具两端统一按 UTF-8 处理,所以中文可以正常往返;但如果你解码的是其他系统生成的 Base64,就需要和对方确认字符集。

URL 里能直接放 Base64 吗?

不能直接放。标准 Base64 中的 +、/、= 在 URL 里有特殊含义,会被截断或转义。需要改用 URL-safe Base64(Base64url):把 + 换成 -、/ 换成 _,并去掉末尾的 =。JWT 使用的就是 Base64url。

为什么有时末尾有一个或两个 `=`?

Base64 每 4 个字符表示 3 个字节。当原始数据长度不是 3 的倍数时,就用 = 补齐到 4 的倍数:余 1 字节补 ==,余 2 字节补 =。解码时这些 = 可以省略(很多实现会自动容忍)。

什么时候真的需要 Base64?
  • 把图片等二进制塞进 JSON 或 XML 字段(如 Data URI:data:image/png;base64,...)
  • HTTP Basic 认证头:Authorization: Basic base64(user:pass)
  • 邮件附件(MIME)
  • JWT / 某些签名串的组成部分
  • 需要在不支持二进制的文本协议(如日志、配置文件)里保存二进制片段

反过来,如果你只是想在网页之间传数据,用 URL 编码(encodeURIComponent)或直接传 JSON 更合适。

我的输入会被上传吗?

不会。编解码全部在浏览器里用 btoa / atob 加 UTF-8 转换完成,不发任何请求。

返回工具中心