Base64 文件编码器
Base64 会把任何二进制文件变成一串可打印的 ASCII 字符,使它能够通过那些只为文本设计的系统传输:JSON、YAML、邮件正文、短信,以及复制粘贴到聊天中。这个编码器接受任意文件,无论是 PDF、图片、ZIP 还是可执行文件,并返回可直接放入 data: URI、API 请求体或配置文件的 Base64 表示。
如何编码文件
-
1
把任意文件拖入编码器
所有二进制格式都可使用。浏览器会读取原始字节。
-
2
字节被编码为 Base64
每 3 个字节会变成 4 个来自字母表 `A-Z a-z 0-9 + /` 的 ASCII 字符。
-
3
选择输出格式
普通 Base64、带浏览器报告的 MIME 类型(若未提供则使用通用值)的 `data:` URI,或适合放入 JSON 字符串的安全版本。
-
4
复制或下载为文本
大文件下载为 `.txt`;小文件可复制到剪贴板。
体积开销
Base64 会把每 3 个字节扩展为 4 个字符,使存储和网络成本增加 33%。末尾用 = 填充还会再多出几个字节。粗略估算如下:
| 输入文件大小 | Base64 文本大小 |
|---|---|
| 1 KB | 1.33 KB |
| 100 KB | 133 KB |
| 1 MB | 1.33 MB |
| 10 MB | 13.3 MB |
把大型二进制文件以 Base64 形式嵌入 HTML 或 JSON,是迅速拖慢页面加载、撑大解析器内存的做法。只有在部署条件确实迫使你这样做时,才把超过约 10 KB 的内容内联进去。
常见用途
- 数据 URI, CSS 或 HTML 中的小型内联图片:
url("data:image/png;base64,iVBORw0KGgo...")。 - 邮件附件, MIME 多部分正文用 Base64 编码附件,以便安全地通过 SMTP 传输。
- JSON 请求体, 为只发一次请求的 API,在 JSON 字段中嵌入 PDF 或 ZIP。
- YAML/配置文件, 在配置中携带 TLS 密钥或小型二进制数据。
变体与填充
RFC 4648 标准 Base64 字母表包含 64 个符号:A-Z、a-z、0-9、+ 和 /。= 是填充符,不属于字母表。如需 URL 安全的输出(把 + 替换为 -、/ 替换为 _),请使用专用开关。填充默认启用,也可以关闭。
隐私说明
文件永远不会离开你的设备。FileReader API 会在浏览器内读取字节,由 JavaScript 完成编码。在编码敏感的 PDF、私钥或尚未发布的素材时,这一点尤为重要。
常见问题
编码器只接受一个不超过 50 MB 的文件。Base64 结果比源文件更大,并保存在浏览器内存中,因此这一硬性限制可避免内存占用过高。
需要适合 URL 或文件名的字母表时使用。URL 安全的 Base64(RFC 4648 第 5 节)把 + 替换为 -、把 / 替换为 _;是否保留末尾的 = 由单独的填充选项控制。
只对 data: URI 输出重要。data:image/png;base64,... 会告诉浏览器如何渲染解码后的字节。对普通 Base64 或嵌入 JSON 来说,MIME 类型并不是编码数据的一部分。
HTML 可以包含 data:application/pdf;base64,... URL,但现代浏览器通常会阻止顶层页面导航到 data: URL,而且不同浏览器的下载行为并不可靠。较大的值还可能超出 URL、内存或 Content Security Policy 限制。若要可靠下载,请在浏览器代码中创建 Blob 对象 URL,或通过 HTTPS 链接到托管文件。
相关工具
bcrypt 哈希生成器
生成 bcrypt 哈希,或用明文密码对照已有的 bcrypt 哈希进行验证。一个工具内并排支持生成和验证。
Base32 编码器和解码器
使用 RFC 4648 字母表编码和解码 Base32 字符串。适用于 TOTP 密钥、大小写不敏感的令牌和人工输入的标识符。
bcrypt 生成器
从 plaintext password 生成 bcrypt hash。Cost factor 可在 4 到 14 之间调整,兼容 Laravel、Django、Node 和 PHP。
Base85 编码器和解码器
编码和解码 Adobe Ascii85(PostScript/PDF)或 Z85(ZeroMQ)变体的 Base85。对二进制数据比 Base64 更紧凑。
AES 加密 / 解密
使用 OpenSSL AES cipher 加密和解密低风险文本。口令会用 SHA-256 哈希,Base64 输出包含 IV 加密文。
Atbash 密码编码器
使用 Atbash 密码编码或解码文本,这是一种把 A-Z 映射为 Z-A 的希伯来替换法。同一个操作既可加密也可解密。