跳到正文
马克工具箱

Base64 编码解码

把文本或任意文件转换成 Base64,或把 Base64 还原成文本和原始文件。正确处理中文等 UTF-8 字符,支持 JWT 使用的 URL 安全变体,全部在浏览器本地完成。

在浏览器本地运行,输入的内容和文件都不会上传

使用步骤

  1. 选择「编码」或「解码」。
  2. 编码时输入文本,或切换到「文件」选择任意文件,比如图片、PDF、字体。
  3. 按需勾选 URL 安全字符、填充、data URL 输出等选项。
  4. 复制结果;解码出图片等二进制数据时,可以直接下载为文件。

参数说明

URL 安全
把 + 和 / 替换为 - 和 _(RFC 4648 §5),结果可以直接放进网址和文件名。JWT 使用这种格式且不带填充。
填充
在末尾补 = 使长度为 4 的倍数。有的系统要求必须有,有的(如 JWT)不带。解码时两种都能识别。
每 76 个字符换行
按 76 个字符一行输出,这是电子邮件(MIME)和 PEM 证书文件要求的格式。
Data URL
输出 data:image/png;base64,… 形式,可以直接粘贴到 HTML 或 CSS 中作为图片地址。

示例

输入 Base64
hello aGVsbG8=
hello(URL 安全,无填充) aGVsbG8
你好 5L2g5aW9
字节 FB FF BF +/+/(标准)或 -_-_(URL 安全)

解码 JWT 的载荷

JWT 由三段用点分隔的内容组成,中间一段是不带填充的 URL 安全 Base64,粘贴到「解码」即可看到其中的字段。注意这里不校验签名,能解码不代表这个 Token 可信。

常见问题

Base64 是加密吗?

不是。Base64 只是用 64 个可打印字符表示字节的编码方式,任何人都能还原。不要用它来隐藏密码或密钥。

为什么 Base64 比原文长?

每 3 个字节会变成 4 个字符,所以体积大约增加 33%;开启换行时还要再加上换行符。

为什么解码出来是乱码,或提示是二进制数据?

这段 Base64 里的内容不是 UTF-8 文本,通常是图片、压缩包或加密数据。请点「下载解码后的文件」,工具会识别常见图片格式并自动命名扩展名。

怎么把图片嵌入 CSS 或 HTML?

切换到「文件」,勾选「输出为 data URL」,选择图片,把结果粘贴到 src="…" 或 url(…) 里。适合小图标,大图会拖慢页面。

中文会乱码吗?

不会。文本会先转成 UTF-8 字节再编码,结果与 Python 的 base64.b64encode(s.encode()) 或 Java 的 Base64.getEncoder().encodeToString(s.getBytes(UTF_8)) 一致。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具