Base64 编解码

文本与 Base64 互相编码解码,支持 UTF-8 中文。

什么是Base64 编解码?

Base64 是一种二进制到文本的编码方式,用 64 个可打印字符表示任意字节数据,常用于在文本协议中传输二进制内容(如邮件附件、JSON 中嵌入图片、HTTP Basic 认证)。 它不是加密算法,没有密钥,任何人拿到 Base64 字符串都可以直接还原出原文,不提供任何机密性保护。

为什么使用Base64 编解码?

典型场景包括:用 data URL 把图片/字体直接嵌入 HTML 或 CSS、JWT 的 Header 和 Payload 部分的编码、HTTP Basic Auth 中 user:password 的编码、在只支持文本的协议(如邮件 MIME、部分配置文件)中安全携带二进制数据。 区别于加密算法(如 AES)——Base64 的目的是编码转换,不是保密,敏感数据仅做 Base64 处理并不安全;也区别于 URL 编码——Base64 处理的是任意字节流,URL 编码只转义 URL 中的保留字符。

使用示例

编码中文文本

输入“你好,World”,先按 UTF-8 转成字节再编码,得到类似 5L2g5aW9LFdvcmxk 的 Base64 字符串。

解码还原原文

输入 aGVsbG8=,解码得到 hello;末尾的 = 是填充字符,用来让编码结果长度补齐为 4 的倍数。

构造图片 Data URL

把一张小图标转成 Base64 后拼接成 data:image/png;base64,iVBORw0KG... 这样的字符串,可以直接放进 <img src="..."> 或 CSS background-image,省去一次网络请求。

使用提示

全程在浏览器本地 JavaScript 中完成,文本不会上传到服务器;对非 ASCII 文本编解码时务必统一按 UTF-8 处理字节,否则容易出现乱码。

常见问题

支持中文 / UTF-8 吗?
支持。编码时先按 UTF-8 转字节再做 Base64,解码时反向还原,中文、emoji 均可正确处理。
Base64 是加密吗?
不是。Base64 只是把数据用可打印字符表示的编码,任何人都能还原,切勿当作加密保护敏感信息。
数据会上传吗?
不会。编码解码全部在浏览器本地完成。
Base64 是加密吗,安全吗?
不是。Base64 只是编码转换,没有密钥,任何人都能解码还原,不能用它来保护敏感信息;如需保密应配合 AES 等真正的加密算法。
编码结果结尾为什么会有 = 号?
= 是填充字符,Base64 每 3 字节编码成 4 个字符,当原始数据长度不是 3 的倍数时,用 = 补齐末尾长度,通常出现 0、1 或 2 个。
能处理中文和 emoji 吗?
可以,工具会先把文本按 UTF-8 编码转成字节序列,再对字节做 Base64 编码,解码时按同样规则反向转换,中文和 emoji 都能正确还原。
解码时报错 invalid character 是为什么?
通常是输入包含了标准 Base64 字符集(A-Z a-z 0-9 + /=)之外的字符,或者把 URL-safe 变体(用 - 和 _ 代替 + 和 /)与标准 Base64 混用了,需要统一格式后再解码。
为什么编码后文本变长了?
Base64 用 4 个字符表示 3 个原始字节,编码后体积大约增加 33%,这是该编码方式的固有开销。

相关工具

相关教程

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。