tigtools

Base64 编码器 / 解码器

将文本或任意文件转换为 Base64,也可将 Base64 解码为可读文本或原始文件。支持正确处理重音字符、表情符号和二进制数据。

在浏览器中运行 无需注册

输入类型
转换方向

使用方法

  1. 在顶部选择“文本”或“文件”。
  2. 处理文本时,选择转换方向,然后输入或粘贴文本。结果会随输入实时更新。
  3. 要对文件进行编码,请选择或拖放文件(最大 10 MB)。如果要将文件嵌入 HTML 或 CSS,请勾选“输出为 data URL”。
  4. 要将 Base64 还原为文件,请选择“Base64 → 文本”,粘贴数据,然后点击“下载为文件”。

工作原理

Base64 使用 64 个可打印的 ASCII 字符表示二进制数据:A–Z、a–z、0–9、+ 和 /。每 3 个字节会转换为 4 个字符,因此编码后的内容比原始数据大约多 33%。如果输入长度不是 3 的倍数,输出末尾会补上一个或两个 =。

Base64 是一种编码方式,并非加密。任何人都可以在不使用密钥的情况下解码,因此绝不能用它隐藏密码或个人数据。它的用途是让二进制数据能够通过为文本设计的系统传输,例如电子邮件(MIME)、JSON、XML、HTTP 标头和数据 URL。

文本会先转换为 UTF-8 字节,因此 ASCII 以外的字符也能正确编码。这一点很重要,因为浏览器内置的 btoa 函数无法处理 é 或表情符号等字符。解码时,工具会检查结果是否为有效的 UTF-8;如果不是,说明数据属于二进制内容,工具会以十六进制形式显示,而不会显示乱码。

URL 安全变体(base64url,RFC 4648 第 5 节)会将 + 替换为 -,将 / 替换为 _,并通常省略 = 填充,因为这些字符在 URL 中有特殊含义。它用于 JSON Web Token 和许多 Web API。MIME 换行(RFC 2045)会将输出拆分为每行最多 76 个字符,这是某些电子邮件系统和 PEM 证书文件所要求的格式。

在安全的情况下,解码会尽可能宽容:忽略空格和换行,补齐缺少的填充,并接受两种字符表。对于其他问题,例如多余字符或填充出现在中间,工具会指出其位置,而不会悄悄忽略。

示例

编码带重音符号和表情符号的文本

“Grüße 👋”会转换为 R3LDvMOfZSDwn5GL。ü 和 ß 各占 2 个 UTF-8 字节,表情符号占 4 个,因此 7 个字符会变成 12 个字节和 16 个 Base64 字符。

构建 HTTP Basic Authorization 标头

用户名为 “alice”、密码为 “s3cret” 时,将 alice:s3cret 编码为 YWxpY2U6czNjcmV0,然后发送标头 Authorization: Basic YWxpY2U6czNjcmV0。由于 Base64 并非加密,Basic 身份验证只能通过 HTTPS 使用。

从数据 URL 还原文件

将 data:image/png;base64,iVBORw0KGgo… 这样的字符串粘贴到 Base64 → 文本中。工具会移除前缀、识别出 PNG 数据;由于它不是文本,工具会以十六进制形式显示。点击“下载为文件”即可保存为 decoded.png。

常见问题

Base64 是一种加密方式吗?

不能。Base64 是一种可逆编码,无需密钥或秘密信息。任何人看到 Base64 字符串都能立即解码,因此切勿依靠它保护密码、令牌或个人信息。

为什么我在其他工具中解码后会看到乱码?

通常是因为文本使用 UTF-8 编码,却用 Latin-1 解码(或反过来)。此工具始终使用 UTF-8,并会在解码后的字节不是有效的 UTF-8 文本时提示你。

Base64 和 base64url 有什么区别?

两者使用相同的编码方式,但 base64url 会将 + 替换为 -、将 / 替换为 _,通常还会去掉 = 填充,因此结果无需额外转义即可用于 URL 和文件名。此解码器同时支持这两种格式。

为什么 Base64 输出比原文件大?

Base64 会将每 3 个字节转换为 4 个字符,体积因此增加约 33%。每 76 个字符换行时,还会额外增加 2 个字符(CRLF)。对于较大的图片,通常直接提供文件比将其嵌入为 data URL 更合适。

有大小限制吗?

文件大小最多为 10 MB。粘贴的文本没有固定限制,但输入内容非常大(数十 MB)时可能会导致页面变慢,尤其是在手机上。

隐私

编码和解码均在浏览器中进行。文本和文件不会上传或存储,其内容也不会纳入分析统计。下载文件会在你的设备上本地生成。