Base64 编码/解码(文本)

Loading dropzone…

Input

Output

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

作为 Encode64 “Base64 工作室”的一部分,此解码器只需几次点击即可将 Base64 字符串、数据 URI 和电子邮件附件还原为原始文本或二进制数据。粘贴、拖放文件、解码 — 无需上传至服务器。

为何使用此Base64解码器

  • 文本负载的实时解码预览
  • 支持多行Base64块、PEM风格分段和数据URI
  • URL安全Base64支持(-/_变体)并自动规范化
  • 适用于电子邮件附件和MIME块(Content-Transfer-Encoding: base64)
  • 处理二进制负载 — 将解码结果下载为文件
  • 移动友好界面,便于随时快速检查
  • 解码在您的浏览器中进行 — Base64内容不会发送到远程服务器

🔧 Base64解码工作原理(逐步指南) for base64-decoder

1

粘贴或拖放Base64数据

将您的Base64字符串粘贴到输入区域,或拖放包含Base64数据的文本文件。该工具还能检测并从data:*;base64,... URL中提取负载。

2

规范化与验证

解码器会修剪空白字符,处理URL安全字符(-和_),并检查字符串是否仅使用有效的Base64字符及可选的填充符=。

3

解码Base64块

每4个Base64字符映射为24位,重新分组为3个原始8位字节。填充符=告知解码器最后一组中有多少字节。

4

预览或下载结果

如果解码输出是文本,您可以直接在输出面板中看到。对于二进制数据(图像、文档、存档等),您可以将解码结果下载为文件。

技术规格

字符集与变体

解码器遵循RFC 4648标准Base64,并理解URL安全变体。

范围/类型字符备注
索引0–25A–Z大写字母
索引26–51a–z小写字母
索引 52–610–9数字
索引 62–63+ /标准Base64符号
填充=表示最后一个量子不完整
URL安全- _常见的网页安全变体(解码前重新映射为 + /)

大小关系(原始数据 vs Base64)

Base64编码会使大小增加约三分之一。解码时,数据会恢复至原始大小。

原始大小Base64大小(约)开销
3字节4字符约大33%
1 KB≈ 1.37 KB包括填充和换行符约大37%
1 MB≈ 1.37 MB在更大规模下比例相同
如果解码后的数据不比Base64输入小很多,可能包含了额外的头部或包装文本。

性能与实用限制

Base64解码是轻量级的,但对于非常大的负载,浏览器内存仍需考虑。

负载大小用户体验建议
几KB即时非常适合从开发者工具或日志快速复制
100 KB – 1 MB仍然非常响应适用于API响应或小附件
1–5 MB在现代机器上通常表现良好二进制数据建议使用下载方式
> 5–10 MB在浏览器中可能感觉缓慢或占用内存较多推荐使用命令行或语言库

命令行Base64解码

对于超大文件或自动化流水线,请使用环境中的原生Base64工具。

Linux / 🍏 macOS

解码Base64字符串

echo 'SGVsbG8=' | base64 --decode

将内联字符串SGVsbG8=解码为Hello。

解码Base64文件

base64 -d input.b64 > output.bin

将Base64文件转换回原始二进制数据。

Windows / PowerShell

使用PowerShell解码

[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("SGVsbG8="))

将Base64字符串解码为UTF-8文本。

使用certutil(CMD)解码

certutil -decode input.b64 output.bin

使用Windows内置工具解码Base64文件。

实际应用场景

网页开发与API

在浏览器中检查和恢复Base64负载中的数据。

  • 解码HTML/CSS中作为数据URI嵌入的图像。
  • 检查REST或GraphQL响应中的Base64编码负载。
  • 解码存储在LocalStorage或IndexedDB中的Base64二进制大对象。
const binary = atob(base64String);
const json = JSON.parse(atob(encodedJson));

电子邮件与MIME附件

处理Base64编码的附件和MIME部分。

  • 从EML文件解码Base64编码的电子邮件附件。
  • 检查使用Content-Transfer-Encoding: base64的MIME部分。
  • 调试嵌入内联图像的邮件库。
Content-Transfer-Encoding: base64
const buffer = Buffer.from(encodedContent, 'base64');

安全与取证

了解Base64数据块背后实际隐藏的内容。

  • 解码在日志或有效载荷中发现的可疑Base64数据块。
  • 检查混淆的配置值或脚本片段。
  • 结合其他工具理解编码的威胁指标。
// Node.js示例:解码可疑有效载荷
const decoded = Buffer.from(encoded, 'base64').toString('utf8');
console.log(decoded);

❓ Frequently Asked Questions

为什么我的解码输出看起来损坏了?

最常见的原因有:(1) Base64字符串包含无效字符,(2) 填充字符=缺失或被截断,(3) 原始数据是二进制文件(图像、PDF、ZIP等)但你试图将其作为纯文本查看。在最后一种情况下,请将解码结果下载为文件而不是直接显示。

🔗如何处理URL安全的Base64?

URL安全的Base64将'+'替换为'-','/'替换为'_',有时会省略填充字符'='。本工具在解码时会自动规范化这些字符。如果自行实现,请将'-'→'+','_'→'/',然后用'='填充直到长度为4的倍数。

🔒Base64是隐藏数据的安全方式吗?

不是。Base64是编码而非加密。它设计上就是可逆的,不提供机密性。如果解码的有效载荷包含敏感信息,请确保在系统中使用适当的加密(例如AES或传输中的TLS)。

📏我可以安全解码的最大尺寸是多少?

本工具在大多数现代浏览器中可以舒适处理几兆字节的Base64数据块。更大的有效载荷可能有效但会变得缓慢或占用大量内存。对于超过约5-10MB的内容,最好使用命令行工具或服务器端库。

Pro Tips

Best Practice

如果解码失败,首先去除任何头部信息(如'-----BEGIN'/'END-----'块),仅使用Base64字符重试。

Best Practice

当期望得到JSON时,将解码步骤包装在try/catch中使用JSON.parse,如果有效载荷与声称的不符则快速失败。

Performance Tip

对于大型二进制有效载荷(图像、归档文件),直接将其解码到文件而不是尝试作为文本显示。

Additional Resources

Other Tools