Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。它主要用于在那些只支持文本内容的媒体(如电子邮件、HTML、JSON、XML)中传输二进制数据(如图片、音频、加密密钥)。
Base64 使用的 64 个核心字符包括:
A-Z (26个)a-z (26个)0-9 (10个)+ 和 / (2个)= 用作末尾补齐(Padding)。Base64 的核心逻辑是将 3 个 8 位字节(24位) 转换为 4 个 6 位字节(24位)。
= 进行填充,这就是为什么很多 Base64 字符串以一个或两个 = 结尾的原因。注意: 经过 Base64 编码后,数据体积通常会比原始数据增加约 33%。
| 功能类型 | 说明 |
|---|---|
| 文本 Base64 编码/解码 | 输入文本即可即时转换 |
| 图片 Base64 编码/解码 | 支持 PNG/JPEG/GIF/WebP |
| 音频/视频 Base64 编码 | 支持 MP3/MP4/WAV 等 |
| 任意文件 Base64 编码 | PDF、ZIP、文档均可 |
| Base64 还原文件(Blob) | 将 Base64 转为可下载的文件 |
| 多端适配 | 支持电脑与手机使用 |
| 纯前端运行 | 文件不会上传到服务器 |
如 PDF、ZIP、DOCX、EXE 等。
操作:
适用于:
在前端开发中,为了减少 HTTP 请求次数,开发者常将小图标(Icon)直接转换为 Base64 字符串,嵌入到 HTML 或 CSS 中。
background-image: url("data:image/png;base64,iVBORw0KGgoAAA...");早期的电子邮件系统主要基于 ASCII 码,无法直接传输二进制图片或附件。Base64 将附件转换为纯文本格式,确保在不同邮件服务器间稳定传输。
标准的 Base64 包含 + 和 /,在 URL 传输时会被转义。本站提供的工具支持 URL Safe 模式,将这些符号替换为 - 和 _,使其无需二次编码即可直接作为 URL 参数使用。
在 Web API 接口调用时,如果需要传输非文本数据(如 RSA 公钥、二进制文件流),通常先将其转换为 Base64 字符串,嵌套在 JSON 对象中。
Q:Base64 是一种加密方式吗?
A:不是。 Base64 只是一种编码方式(Encoding),任何人都可以通过 Base64 解码工具还原出原始数据。它的目的是为了“方便传输”,而不是“数据保护”。如果需要加密,请使用本站提供的 [AES] 或 [RSA] 加密工具。
Q:Base64 编码后的数据为什么会变大?
A: 因为 Base64 用 4 个字符来表示原本 3 个字节的数据。每 3 个字节的原始数据会被编码为 4 个 Base64 字符,因此体积会固定增长约 1/3。
Q:解码时出现“非法字符”报错是什么原因?
A: 这通常是因为待解码的字符串中包含了非 Base64 字符集内的字符(如空格、特殊表情、或是错误的换行符)。请确保复制的字符串完整且不包含干扰字符。
Base基础知识和编码原理参见: Base64 快速入门:原理、场景、格式和代码示例.