CodeKitHub
编码工具

Base64 在线编码解码

最后更新:

Base64 把每 3 个字节的数据编码成 4 个 ASCII 字符,所以编码后的输出比原始输入大约 33%。把文本转换为 Base64,或把 Base64 字符串还原为可读文本。本工具完整支持 UTF-8,中文和 emoji 都不会乱码(很多简易工具会在这里出错)。全部处理在浏览器本地完成。

工具介绍

Base64 是一种把二进制或文本数据转换成 64 个安全 ASCII 字符(A–Z、a–z、0–9、+ 和 /)的编码方式。它在软件开发中无处不在:HTML/CSS 中内嵌图片、HTTP Basic 认证头、邮件附件(MIME)、JSON Web Token、以及需要经过纯文本通道传输的 API 数据。

重要提示:Base64 是编码,不是加密。任何人都可以解码它。它的作用是让数据能安全通过只认文本的系统,而不是保密。

Base64 的正式规范是 RFC 4648,该标准还定义了 JWT 和 Web API 中使用的 URL 安全变体:把 + 换成 -、/ 换成 _,让编码后的字符串无需百分号转义就能直接放进 URL。

为什么使用它?

  • 解码 API token、JWT 片段和认证头,查看里面的内容。
  • 为 data URI、配置文件或 HTTP 头编码文本。
  • 完整 UTF-8 支持:中文、emoji 编码解码都不乱码。
  • 完全私密——转换在浏览器本地进行,数据不上传。
  • 免费、无需登录、没有大小限制。

使用方法

  1. 在输入框中输入或粘贴内容。
  2. 点"编码"把文本转成 Base64,或点"解码"把 Base64 还原成文本。
  3. 如果解码失败,说明输入不是有效的 Base64——检查是否缺字符或混入了多余空白。
  4. 点"复制"复制结果。

示例

输入

Hello, CodeKitHub! 你好 👋

输出

SGVsbG8sIENvZGVLaXRIdWIhIOS9oOWlvSDwn5GL

注意中文和 emoji 在编码解码后完好无损——这就是 UTF-8 安全的意义。

实用技巧

  • JWT 令牌是用点号连接的三段 Base64——把前两段(header 和 payload)分别解码即可阅读;第三段是二进制签名,解出来必然是乱码。
  • JWT 片段解码失败多半是 base64url 编码:先把 - 换成 +、_ 换成 /(标准工具认的是 +/ 字母表)。
  • Base64 字符串里的空白和换行通常是邮件或日志带来的无害残留;但末尾缺 = 填充往往有问题——先检查长度,别急着断定数据损坏。
  • Base64 会让数据膨胀约 33%。小数据无所谓;几 KB 以上的图片,真实文件几乎总是比 data URI 更好的选择。

真实使用场景

每天把人带到这个页面的三件事:读 Authorization 头或 JWT 里到底装了什么、解码接口/webhook 里 Base64 包裹的字段(里面常是 JSON——解完接着格式化)、以及调试时手工拼一个 data URI 或 Basic-Auth 字符串。

二进制数据(图片、文件)按文本解码得到的必然是乱码——数据可能完全正常,只是它本来就不是文本。二进制的编解码应该写在代码里;本工具为文本场景优化。

怎么排查解码失败

Base64 解码失败几乎总是这三个原因之一,按出现频率排序:输入其实是 base64url(用 - 和 _ 代替标准的 + 和 /,JWT和URL安全场景常见),需要先把这两个字符换回来标准解码才认;字符串在传递过程中被截断了(复制粘贴漏了最后几个字符,或者日志行被截断),这个可以通过长度判断——有效的 Base64 字符串算上填充后长度一定是4的倍数;或者复制过程中混入了杂散字符(多余空白、意外换行、不小心重复了一个字符),这也是为什么直接从原始来源粘贴总比重新打字更安全。

JSON格式化 · URL 编码解码 · JWT 解码器

常见问题

Base64 是加密吗?

不是。Base64 是可逆的编码,任何人都能解码,没有任何保密性。需要保护数据请使用真正的加密算法(如 AES),Base64 只用于让数据以文本形式安全传输。

为什么我解码出来是乱码?

可能输入本身不是 Base64、字符串被截断了,或者原始数据是二进制内容(比如图片)而不是文本——二进制数据本来就无法显示为可读字符。

结尾的 = 号是什么?

填充符。Base64 把每 3 个字节编码成 4 个字符,当输入长度不是 3 的倍数时,用一个或两个 = 补齐最后一组。

中文和 emoji 会乱码吗?

不会。本工具先把文本按 UTF-8 编码成字节再做 Base64,这是标准做法。直接调用 btoa() 的简易工具遇到中文就会报错,本工具不会。

我的数据会被上传吗?

不会。编码和解码完全通过浏览器内的 JavaScript 完成,数据不会离开你的设备。

相关工具