Base64 编码/解码(文本)
Input
Output
为何使用此Base64编码器
- 即时Base64编码文本、JSON和小型二进制载荷
- 文件支持(文本、图像、二进制文件),快速转换为Base64字符串
- URL安全选项,适用于JWT、查询参数和Web安全场景
- 可选换行,模拟CLI工具或电子邮件/PEM格式
- 一键复制,便于在头部、配置和代码中重复使用
- 响应式UI,在桌面和移动设备上均表现良好
- 编码在您的浏览器中进行——您的数据不会发送到远程服务器
🔧 Base64编码工作原理(逐步指南) for base64-encoder
1
提供输入
将您的文本、JSON或代码片段粘贴到输入区域,或拖放文件以将其原始字节转换为Base64。工具会精确读取字节。
2
转换为字节
编码器将字符(如UTF-8文本)或文件内容转换为字节。每个字节是0到255之间的8位值。
3
将位重新分组为Base64索引
每3字节(3 × 8 = 24位)被重新分组为4组6位(4 × 6 = 24)。每组6位是Base64字母表中的一个索引。
4
映射到Base64字符并填充
每个6位索引被转换为一个Base64字符。如果输入不能被3字节整除,则添加'='填充,使输出长度始终为4字符的倍数。
技术规格
字符集(RFC 4648)
此编码器使用RFC 4648定义的标准Base64字母表。
| 范围/类型 | 字符 | 备注 |
|---|---|---|
| 索引0–25 | A–Z | 大写字母 |
| 索引26–51 | a–z | 小写字母 |
| 索引 52–61 | 0–9 | 数字 |
| 索引 62–63 | + / | 标准 Base64 符号 |
| 填充 | = | 确保输出长度为4的倍数 |
大小与开销
Base64 在纯文本通道中以大小换取安全性。编码后数据量预计增加约三分之一。
| 原始大小 | Base64 大小(约) | 开销 |
|---|---|---|
| 3 字节 | 4 字符 | 大约增加 33% |
| 1 KB | ≈ 1.37 KB | 约 37%(含填充和换行符) |
| 1 MB | ≈ 1.37 MB | 更大规模下比例相同 |
当需要安全的文本传输(例如 HTTP 头、JSON、HTML)时使用 Base64,而非作为压缩方法。
性能与实际限制
编码本身很快,但大缓冲区可能影响浏览器内存和响应性。
| 负载大小 | 用户体验 | 建议 |
|---|---|---|
| 几 KB | 即时 | 适用于头信息、配置片段和测试数据 |
| 100 KB – 1 MB | 非常流畅 | 适用于 API 负载和测试夹具 |
| 1–5 MB | 现代硬件上通常无碍 | 若频繁操作,考虑使用 CLI 工具 |
| > 5–10 MB | 在浏览器中可能感觉缓慢或占用内存较多 | 使用流式编码器或命令行工具 |
命令行Base64编码
对于大文件、自动化或CI工作流,请使用您平台上的原生Base64工具。
Linux / 🍏 macOS
编码字符串
echo -n 'text' | base64将字符串'text'编码为Base64,不添加换行符。
编码文件
base64 input.bin > output.b64从input.bin读取二进制数据,并将Base64文本写入output.b64。
Windows / PowerShell
使用PowerShell编码字符串
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("text"))将'text'的UTF-8字节转换为Base64字符串。
使用certutil(CMD)编码文件
certutil -encode input.bin output.b64使用内置Windows工具创建Base64编码文件。
实际应用场景
网页开发与数据URI
将小型资源和素材直接内联到HTML、CSS或JavaScript中。
- 为徽标、图标和小图片生成data:image/...;base64,...格式。
- 在CSS规则中内联字体或SVG内容。
- 将小型数据作为Base64字符串存储在LocalStorage中。
<img src="data:image/png;base64,iVBORw0KGgo...">document.styleSheets[0].insertRule("@font-face{src:url('data:font/woff2;base64,...')}" );API开发与请求头
通过纯文本通道安全传输凭据和小型数据。
- 从用户名:密码对构建Authorization: Basic请求头。
- 将JSON数据编码为Base64,用于自定义请求头或查询参数。
- 将二进制数据包装为Base64字符串放入JSON。
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=fetch(url, { headers: { 'X-Payload': btoa(JSON.stringify(data)) } });测试、固件与调试
为测试和调试会话构建稳定的纯文本固件。
- 编码二进制固件(图像、PDF)并将其嵌入测试代码。
- 将示例数据存储为Base64字符串,而非提交二进制文件。
- 为需要Base64编码字段的服务构建原型载荷。
// 示例:使用Base64测试夹具的Jest测试
const payload = Buffer.from(base64Fixture, 'base64');
expect(processPayload(payload)).toBeTruthy();
❓ Frequently Asked Questions
❓为什么Base64使用'='作为填充?
Base64将输入按3字节(24位)分组,输出4个字符(4×6位)。当输入长度不能被3整除时,会添加'='填充字符来指示最后一个分组较短。填充是编码格式的一部分,而非原始数据。🔗如何生成URL安全的Base64?
URL安全
Base64将'+'替换为'-','/'替换为'_',并常移除末尾的'='填充。许多库提供URL安全模式。如需手动处理,可从标准Base64开始,然后根据使用场景应用这些替换并修剪'='。🔒Base64编码是安全措施吗?
不是。
Base64是一种可逆的**编码**方式,使二进制数据能以文本形式安全传输(如在JSON、HTML或标头中)。它本身不提供机密性或完整性。请始终使用HTTPS/TLS和适当的加密技术(如AES或公钥方案)来保障安全。📏这里编码的最大文件大小是多少?
本在线编码器最适合处理几兆字节以内的载荷。更大的二进制文件可能仍可工作,但在浏览器中可能速度较慢或内存占用高。对于大文件,命令行工具或流式编码器更为稳健。
Pro Tips
Performance Tip
对于非常小的资源(<10 KB),内联为Base64数据URI可减少HTTP请求,但避免对大型图像或字体使用此方法。
Security Tip
在生产环境中仅记录截断的Base64载荷(或哈希值),以防敏感内容泄露到日志中。
Best Practice
如果后端需要Base64,请在服务器端验证并规范化输入,以拒绝格式错误或过大的载荷。
Additional Resources
Other Tools
- CSS 美化器
- HTML 美化器
- JavaScript 美化器
- PHP 美化器
- 颜色选择器
- 精灵图提取器
- Base64 解码器
- C# 格式化器
- CSV 格式化器
- Dockerfile Formatter
- Elm 格式化器
- ENV 格式化器
- Go 格式化器
- GraphQL 格式化器
- HCL 格式化器
- INI 格式化器
- JSON 格式化器
- LaTeX 格式化器
- Markdown 格式化器
- Objective-C 格式化器
- Php Formatter
- Proto 格式化器
- Python 格式化器
- Ruby 格式化器
- Rust 格式化器
- Scala 格式化器
- Shell 脚本格式化器
- SQL 格式化器
- SVG 格式化工具
- Swift 格式化工具
- TOML 格式化工具
- Typescript Formatter
- XML 格式化工具
- YAML 格式化工具
- Yarn 格式化工具
- CSS 压缩器
- Html Minifier
- Javascript Minifier
- JSON 压缩器
- XML 压缩器
- HTTP 头部查看器
- PDF 转文本
- 正则表达式测试器
- 搜索引擎排名检查器
- Whois 查询