RevealTheme logo

Base64编码与解码工具

将字符串编码为Base64,或将Base64解码为文本。尊重你的隐私:全部在你的浏览器中运行。

如何使用本工具

  1. 1

    Click Encode to turn text into Base64, or Decode to turn Base64 back into text.

  2. 2

    Type or paste your input into the text box (it starts with a sample value you can replace).

  3. 3

    Press Run to process the input; the result appears in the box below.

  4. 4

    If decoding fails, check the error message — invalid Base64 characters or wrong padding are the usual causes.

什么是Base64,为什么它无处不在?

Base64是一种编码方案——而非加密——它仅使用64个可打印的ASCII字符(A-Z、a-z、0-9,以及作为填充的+、/和=)来表示任意二进制数据。它之所以存在,是因为许多传输协议、文件格式和API都只支持文本,或对某些字节作特殊处理:电子邮件(SMTP是为7位ASCII设计的)、JSON(不能包含原始字节)、URL(含有保留字符)、HTTP头(面向行的文本)以及HTML属性,全都需要一种通过文本通道传输二进制数据的方式。Base64通过将输入字节按每3个一组(24位)分组,并将每组重新编码为4个Base64字符(每个6位)来解决这一问题。其大小开销恰好为33%:每3个字节变成4个字符。本工具可在任意方向上编码UTF-8文本或Base64字符串,全部在你的浏览器中完成。它能正确处理多字节的UTF-8字符(表情符号、非拉丁字母),而那些直接使用atob/btoa的简陋Base64实现则会破坏这些字符。

常见使用场景

  • 将小图片以data: URL的形式直接嵌入CSS中(为小图标省去一次HTTP请求)。

  • 解码JWT或Basic Auth请求头的负载,查看其中的内容。

  • 将二进制文件内容编码后放入JSON字段或环境变量中。

  • 通过那些无法保留任意字节的系统(电子邮件、复制/粘贴)传输二进制数据。

  • 在调试时解码经过base64编码的API响应或webhook负载。

  • 为运维交接将二进制凭据转换为便于复制粘贴的格式。

常见问题

Base64是加密吗?
不是。Base64是一种可逆的编码:任何人都能在无需密钥的情况下立即解码。若需保密,请使用真正的加密(AES-256、RSA或我们的AES加密工具)。把Base64当作安全手段是关于它的头号错误。
为什么Base64会增加约33%的大小?
编码将输入的3个字节(24位)映射为4个字符(24位,因为每个Base64字符表示6位)。这种大小开销是固有且无法避免的。若需更小的二进制表示,请使用Base85,或在通道支持的情况下发送原始二进制。
什么是URL安全的Base64?
这是RFC 4648定义的一种变体,它用-代替+、用_代替/,因此其输出无需百分号编码即可安全地放入URL路径或文件名中。JWT使用URL安全的Base64。许多API两种变体都接受。
为什么我看到末尾有“=”?
它们是填充字符。Base64以4个字符为一组输出;如果输入不是3字节的整数倍,最后一组会用“=”填充至4个字符。某些Base64变体省略填充;两者的解码方式相同。
它能处理表情符号和非拉丁文本吗?
可以。本工具先将文本转换为UTF-8字节,再将字节编码为Base64。这避免了JavaScript中btoa()在遇到非Latin1字符时失败的经典错误。
我在实际应用中哪里能见到Base64?
无处不在:CSS中图片的data:URL、Authorization: Basic头、JWT的各个段、已签名URL的签名、S3预签名URL、PKCS证书(PEM格式)、电子邮件附件(MIME)、二维码的负载,以及现代部署平台中.env风格的密钥。

相关工具