Base64 编码解码

免费在线 Base64 编码与解码:文本与文件双向转换,支持 UTF-8 中文、base64url 与每 76 字符折行,全部在浏览器内完成,内容不上传。

等待输入

使用步骤

  1. 把要处理的文本粘贴进输入框
  2. 选择方向:文本转 Base64,或把 Base64 还原成文本
  3. 需要时勾选 base64url(用于 JWT、URL、Cookie)或每 76 字符折行(用于 MIME)
  4. 点击结果框右上角的复制按钮取走结果

工具说明

Base64 把任意字节序列映射到 64 个可打印 ASCII 字符:字母表是 A 到 Z、a 到 z、0 到 9 再加 + 和 /,末尾用 = 补齐成 4 字符一组。它存在的理由很朴素:早期的邮件协议和 HTTP 头只能安全传输 ASCII 文本,把图片、压缩包或中文直接塞进去会被中间设备改写,于是需要一层「看起来就是普通文本」的外壳。

做法是把每 3 字节切成 4 组、每组 6 位,映射成 4 个字符,代价是体积膨胀约三分之一。

三点最容易被忽略的:第一,它是编码不是加密,不带任何密钥,任何人一步就能还原,绝不要靠「Base64 之后看起来是乱码」来保护密码或密钥;第二,文本要先按 UTF-8 编成字节再做 Base64,否则同一句中文在不同系统之间会得到不同结果,本工具固定按 UTF-8 处理;

第三,不同场景对细节的要求不一样,JWT、URL 与 Cookie 用的是把 + 和 / 换成 - 和 _、并常常省略补齐的 base64url,MIME 与 PEM 则要求每 76 字符折一行,这两个开关本工具都提供,不需要你手工补。

常见问题

Base64 是加密吗?
不是。Base64 是无密钥的可逆编码,任何工具都能一步还原。需要保密请使用真正的加密算法,Base64 只解决「能不能安全传输」,不解决「别人能不能看懂」。
为什么一个汉字变成四个字符?
Base64 每 3 个字节产出 4 个字符。一个汉字在 UTF-8 里正好占 3 个字节,所以它恰好对应 4 个 Base64 字符,整体体积约为原来的 1.33 倍。
末尾的等号可以删掉吗?
标准 Base64 里等号是补齐标记,删掉后部分严格的解析器会报错;而 base64url(JWT、Cookie、URL 参数)通常省略补齐。本工具解码时两种写法都接受。
同一个文件为什么两次转出来的 Base64 不一样?
Base64 是字节的一一映射,字节差一个字符结果就全变,所以差异几乎总来自字节层而不是编码层:文本的行尾是 LF 还是 CRLF、开头带不带 BOM、按 UTF-8 还是 GBK 存的。编辑器保存时改一次行尾,结果就完全不同。要复现同一段 Base64,先固定编码与行尾,再固定有没有末尾空白。
我能自己用 JavaScript 编解码吗?
能,但别把中文直接交给 btoa/atob:它们按 latin1 解释字符串,遇到 U+00FF 以上的字符会抛 InvalidCharacterError。正确管线是 TextEncoder 先拿到 UTF-8 字节,再按 3 字节到 4 字符映射;若要走 btoa,得先把字节数组分块转成二进制字符串(整块 apply 在大输入上会栈溢出)。解码反过来用 TextDecoder,并留意它的两个默认值:坏字节默认静默替换、开头的 BOM 默认被剥掉,两者都会让你以为结果是对的。

相关工具

返回编码转换大全

输入内容只在浏览器内处理,不上传服务器 · 不使用广告 Cookie · 更新于 2026-09-28