Base64 编码/解码(文本)

Loading dropzone…

Input

Output

关于此Base64编码器 在线Base64编码器

作为Encode64“Base64工作室”的一部分,此编码器可将文本、JSON及小型二进制资源转换为Base64字符串,可直接粘贴至头部信息、HTML/CSS、环境变量或测试夹具中。无需登录、安装,且无服务器端处理。

为何使用此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–25A–Z大写字母
索引26–51a–z小写字母
索引 52–610–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