Tool Detail
Base64 编解码
文本与 Base64 相互转换。
提示:本工具使用浏览器内置 Base64,适合文本场景。
使用说明
Base64 是什么
Base64 是一种把二进制数据用 64 个可打印字符表示出来的编码方式(字符集为 A-Z a-z 0-9 + /,末尾用 = 补齐)。它不是加密算法,任何人都能直接解开——它只解决「数据能不能安全穿过只允许文本的通道」这个问题,比如放在 URL、JSON 字段、HTTP 头或邮件正文里。
编码后体积会增大约 33%(每 3 字节变成 4 个字符),这是这种编码的固有代价。
怎么用这个工具
- 选择模式:编码(文本 → Base64)或解码(Base64 → 文本)
- 输入内容,结果即时显示,可一键复制
- 需要确认效果可以点「填入示例」;要把这次结果发给别人,用「分享链接」
中文和其他非 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 转换完成,不发任何请求。