Encode text to standard or URL-safe Base64, or decode Base64 back to UTF-8 text.
Base64 文件转换器
该工具本身是英文的;本页面将用您的语言对它进行说明。
使用 Base64 文件转换器
功能介绍
拖入或选择一个文件,即可得到它的 Base64 data URI;或者粘贴 data URI,将其解码还原为可下载的文件。
它完全在您的浏览器中运行:您输入的任何内容都不会被上传。
如何使用Base64 文件转换器
- 选择或拖入文件. 点击虚线框选择文件,或将文件拖到框上。如果拖入多个文件,只会转换第一个。
- 查看 data URI. 下方文本框会填入 data:type;base64,,后面是编码后的文件。其下一行显示原始大小、Base64 大小和额外开销。
- 复制结果. 按 Copy(复制),将完整的 data URI 放到剪贴板,例如粘贴到测试页面或案件记录中。
- 粘贴 data URI 进行解码. 反之,请将数据 URI 粘贴到下方的输入框中,例如 data:image/png;base64,... 系统支持 ;charset=utf-8 之类的参数、换行符、URL 安全的 Base64 以及百分比编码的数据 URI。
- 下载并检查文件. 按 Decode & Download(解码并下载)保存文件。如果它来自可疑的邮件或页面,打开前请用 File Type Sniffer 和 File Hash(文件哈希)检查。
示例
一张小图片
A small PNG file, dropped onto the box or chosen by clicking itdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
Original: 70 bytes | Base64: 96 bytes (37% overhead) | Data URI: 118 bytes下方的框中会填入数据:image/png;base64,...,并显示一行信息,包括原始大小、包含开销的 Base64 大小以及整个数据 URI 的长度:Base64 的大小比文件大约大三分之一。
检查内容
| 信号 | 其含义 |
|---|---|
| data: 之后的 MIME 类型 | 这是浏览器为该文件报告的类型,通常来自文件扩展名。它不能证明文件的真实内容,因此被改名的文件会保留误导性的类型。 |
| 原始大小 | 以 KB 为单位、保留一位小数的文件大小。小于约 50 字节的文件显示 0.0 KB,这是四舍五入造成的,并非空文件。 |
| Base64 大小与额外开销 | Base64 部分的长度(不含 data:type;base64, 前缀),以及它比文件大多少。大文件会稳定在 33% 左右;极小的文件因填充而显示更高的数值。 |
| 解码后的文件名 | 下载文件的名称为“decoded.”,后跟 MIME 类型的扩展名,例如“decoded.png”、“decoded.txt”(对应 text/plain 类型)或“decoded.bin”(当未指定类型时)。按钮下方的行会显示文件名、文件大小和文件类型。 |
| 按钮下方的文字 | 如果数据 URI 无法读取,或者 Base64 编码中包含 A–Z、a–z、0–9、+ 和 / 以外的字符,则按钮下方会显示一条提示信息,而非进行下载。 |
| 数据保留在本地 | 编码使用浏览器的 FileReader,解码在内存中生成文件,因此本工具不会把文件或粘贴的文本发送到任何地方。 |
更多示例
RFC 4648 测试文本
A text file foobar.txt that contains only the six letters foobar, with no line breakdata:text/plain;base64,Zm9vYmFy,以及一行 Original: 0.0 KB | Base64: 0.0 KB (33% overhead)。Zm9vYmFy 是 RFC 4648 公布的 foobar 测试向量。
解码一段短文本
data:text/plain;base64,Zm9vYg==“解码并下载”会保存一个名为 decoded.txt 的 4 字节文件,其中包含文本 foob,而按钮下方的行则标明了文件名、文件大小以及类型 text/plain。
扩展名不寻常的 SVG 图片
data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLz4=浏览器保存一个名为 decoded.svg+xml、41 字节的空白 SVG 图片。如果想查看,请将其重命名为 .svg。
常见问题解答
它生成什么?
格式为 data:type;base64,data 的数据 URI,其中 type 采用浏览器为该文件报告的 MIME 类型(如果未报告,则为 application/octet-stream)。Base64 编码会使数据体积增加约三分之一,而且这是一种任何人都能逆向解码的编码方式,并非加密。
《Decode & Download》可以读取哪些数据 URI?
Base64 数据 URI(例如 data:image/png;base64,... 或 data:text/plain;charset=utf-8;base64,...),包括含有换行符或 URL 安全字符的,以及未包含 ;base64; 的百分比编码格式 其他情况会在按钮下方显示提示信息。从钓鱼邮件附件中解码的文件可能具有危害性,因此在打开前请使用“File Type Sniffer”进行检查。
文件会被上传吗?
不。该文件是通过 FileReader API 读取的,数据 URI 是在本页面上生成的;并未上传任何内容。仅转换大小不超过 50 MB 的文件,因为更大的数据 URI 可能会导致标签页卡死。
为什么钓鱼邮件或页面中会有很长的 data:... 字符串?
HTML 附件和钓鱼页面经常把徽标、字体、脚本甚至整个文件以 Base64 data URI 的形式嵌入。这样内容就随页面一起传输,而不是从单独的地址加载。在这里解码该字符串,可以在不打开原始页面的情况下看到其中隐藏的内容。
可以解码没有 data: 前缀的普通 Base64 吗?
是的,如果你添加一个的话。在字符串前面加上 data:application/octet-stream;base64,然后点击“解码并下载”,你就会得到一个名为 decoded.bin 的文件。对于短文本,Base64 编码器/解码器会更快。
为什么小文件的额外开销超过 33%?
Base64 把每 3 个字节转换为 4 个字符,并用 = 号填充最后一组。对于只有几个字节的文件,填充所占比例很大,因此 1 字节的文件显示 300%。从几 KB 起,该数值会保持在 33% 左右。
打开从可疑消息中解码出的 SVG 或 HTML 文件安全吗?
在你日常使用的浏览器中不安全。SVG 和 HTML 文件可能包含打开时就会运行的脚本和链接。请先查看文件类型和哈希,并且只在沙箱或单独的分析机器中打开此类文件。