← 退出

Base64 编解码

文本与 Base64 互相转换

输出
—

关于Base64 编解码

Base64 是一种用 64 个可打印字符表示任意二进制数据的编码方式,常用在需要把数据塞进纯文本环境的地方,比如邮件附件、网页里内嵌的图片(data URI)、接口里传递的令牌和配置。这个工具提供三个功能:把文本编码成 Base64、把 Base64 字符串解码回文本,以及把你选择的文件转成 Base64 字符串。文本使用 UTF-8 编码,所以中文和表情符号都能正常往返。有一件事必须先说清楚:Base64 是编码而不是加密,任何人都能把它还原,不能用它来保护密码或隐私数据。

操作步骤

  1. 把要处理的内容放进「输入」框:要编码就输入普通文本;要解码就粘贴 Base64 字符串。
  2. 点「编码 →」,下方「输出」会显示该文本的 Base64 结果。
  3. 点「解码 →」,「输出」会显示解码后的文本。如果输入不是有效的 Base64,会显示红色提示「不是有效的 Base64 字符串」。
  4. 要转换文件,点「上传文件转编码」并选择一个文件,「输出」会直接显示这个文件的 Base64 字符串(不含 data: 前缀)。这个操作不会读取或修改「输入」框里的内容。
  5. 输出出现后,点「输出」标题右边的复制按钮,就能把结果复制到剪贴板。

几个实际算出来的例子

以下结果是用本工具同样的方法运行得到的。把「Hello」编码,得到 SGVsbG8=。把「Hello, 世界」编码,得到 SGVsbG8sIOS4lueVjA==,其中的「世界」因为是 UTF-8 的 6 个字节,所以占用了后面的几个字符。把 SGVsbG8sIOS4lueVjA== 解码,会得到原来的「Hello, 世界」。结尾的等号是补位字符,用来让长度成为 4 的倍数;解码 SGVsbG8(没有等号)也能得到 Hello,因为浏览器的解码函数允许缺少补位。解码时,输入里的空格和换行会被忽略,所以从邮件里复制的多行 Base64 通常也能直接解。

支持范围与已知限制

  • 文本编码使用 UTF-8。解码时也会按 UTF-8 还原成文本,所以只适合解码「原文是文本」的 Base64。
  • 如果 Base64 里装的是图片、压缩包等二进制数据(不是合法的 UTF-8 文本),点「解码 →」会提示「Base64 有效,但解码结果不是 UTF-8 文本(可能是二进制数据)」,而不是报字符串无效。工具不能把解码结果保存成文件。
  • 解码同时支持标准字母表(A-Z、a-z、0-9、+、/、=)和网址安全的变体(使用 - 和 _ 代替 + 和 /),缺失的 = 填充会自动补齐。
  • 文件转编码只做「文件到 Base64」这一个方向,输出的是纯 Base64,不带 data:image/png;base64, 之类的前缀,需要的话请自己在前面加上。没有设置文件大小上限,但整个文件会被读进浏览器内存,并整段显示在页面上,几十兆的大文件会让页面变慢甚至卡死。
  • 编码后的数据体积大约比原数据多三分之一,这是 Base64 本身的特点。
  • 编码或解码出错时,页面只会显示一条简短的错误提示,不会指出具体出错的位置。文本里含有残缺的代理字符(例如被截断的表情符号)时,编码会失败并显示「编码失败」。
  • 输出以一整行显示,不会按 76 个字符自动折行,需要邮件(MIME)格式的折行时请自行处理。

常见问题:Base64 是加密吗?可以用来保护数据吗?

不是,也不能。Base64 只是换了一种写法,没有任何密钥,任何人拿到字符串都能用解码工具还原。用它「藏」密码或个人信息没有任何保护作用。如果需要保护数据,请使用真正的加密。

常见问题:为什么解码出来的是乱码或者报错?

常见原因有:字符串复制不完整(漏了开头或结尾几个字符);原数据不是文本而是二进制文件;原文使用的不是 UTF-8 编码(例如某些旧系统生成的 GBK 文本)。可以先确认字符串完整,再检查来源系统使用的字符集。

常见问题:如何把文件转成可以放进网页的图片数据?

先用「上传文件转编码」得到 Base64,再在前面加上 data:image/png;base64,(换成你文件的实际类型,如 image/jpeg),就能在 HTML 或 CSS 里作为内嵌图片使用。小图标适合这样做,较大的图片会让页面变重,一般还是建议作为单独文件引用。

常见问题:我的文件会被上传到服务器吗?

不会。「上传文件转编码」里的「上传」只是指把文件选进页面,读取和转换都由你的浏览器在本地完成,文件内容不会被发送给我们或任何第三方。

隐私与处理方式

文本编码、解码和文件转换都在你的浏览器里完成,代码中没有任何把输入内容或文件发送到服务器的请求,也不会写入本地存储。刷新页面后输入和输出都会清空。复制按钮使用浏览器的剪贴板功能,内容只进入你自己的剪贴板。不过,如果你要处理的是令牌、密钥等敏感信息,仍建议在可信的设备上操作,并注意不要把结果贴到公开场合。