Base64 编码/解码(文本)
⚡ 面向开发者和高级用户的免费在线Base64编码器。即时将文本、JSON和二进制文件转换为Base64字符串。🔐 完美适用于API、请求头、数据URI和测试。所有编码均在您的浏览器中完成。
为何使用此Base64编码器
- 为文本、JSON和小型二进制载荷提供即时Base64编码
- 支持文件(文本、图像、二进制文件)快速转换为Base64字符串
- URL安全选项,适用于JWT、查询参数和Web安全场景
- 可选的行换行功能,可模拟CLI工具或电子邮件/PEM格式
- 一键复制,便于在头部、配置文件和代码中重复使用
- 响应式用户界面,在桌面和移动设备上均表现良好
- 编码在您的浏览器中进行——您的数据不会发送到远程服务器
🔧 Base64编码工作原理(逐步说明) for base64-encoder
提供输入
将您的文本、JSON或代码片段粘贴到输入区域,或拖放文件以将其原始字节转换为Base64。工具会精确读取字节。
转换为字节
编码器将字符(如UTF-8文本)或文件内容转换为字节。每个字节是一个介于0到255之间的8位值。
将比特位重组为Base64索引
每3个字节(3 × 8 = 24比特)被重组为4组6比特(4 × 6 = 24)。每组6比特是Base64字母表中的一个索引。
映射到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 | 更大规模下比例相同 |
性能与实际限制
编码本身很快,但大型缓冲区可能影响浏览器内存和响应性。
| 负载大小 | 用户体验 | 建议 |
|---|---|---|
| 几 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?
Base64将'+'替换为'-',将'/'替换为'_',并通常移除尾部的'='填充符。许多库都提供URL安全模式。如需手动操作,可从标准Base64开始,然后根据您的用例应用这些替换并修剪'='。🔒Base64编码是一种安全措施吗?
Base64是一种可逆的**编码**方式,旨在使二进制数据能够安全地以文本形式传输(例如在JSON、HTML或标头中)。它本身不提供机密性或完整性。为确保安全,请始终使用HTTPS/TLS和适当的加密技术(如AES或公钥方案)。📏我在此处编码的最大文件大小是多少?
Pro Tips
对于非常小的资源(< 10 KB),将其内联为Base64数据URI可以减少HTTP请求,但请避免对大型图像或字体使用此方法。
在生产环境中,仅记录截断的Base64载荷(或哈希值),以避免在日志中泄露敏感内容。
如果您的后端需要Base64,请在服务器端验证并规范化输入,以拒绝格式错误或过大的载荷。
Additional Resources
Other Tools
- CSS 美化器
- HTML 美化器
- JavaScript 美化器
- PHP 美化器
- 颜色选择器
- 精灵图提取器
- Base32 二进制编码器
- Base32 解码器
- Base32 编码器
- Base58 二进制编码器
- Base58 解码器
- Base58 编码器
- Base62 二进制编码器
- Base62 解码器
- Base62 编码器
- Base64 二进制编码器
- 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 查询