Base64 编码与解码
Base64 编码解码器是一个免费的即时在线工具,用于在文本和二进制数据与 Base64 格式之间进行转换。Base64 是一种二进制到文本的编码方案,使用 64 个 ASCII 字符来表示二进制数据,使其可以安全地通过基于文本的协议(如电子邮件 MIME、JSON、XML 和 URL)传输。本工具支持编码(将数据转换为 Base64)和解码(将 Base64 转换回原始文本或二进制数据)。支持 UTF-8 文本,高效处理大体积输入,完全在浏览器中运行,不向任何服务器发送数据。非常适合需要处理 API 认证头、Data URI、JWT 令牌或任何 Base64 转换场景的开发者。
功能介绍
Base64 是一种编码方案,使用一组 64 个可打印 ASCII 字符(A-Z、a-z、0-9、+、/)将二进制数据转换为文本字符串。等号(=)用作末尾的填充字符,确保输出长度是 4 的倍数。 为什么需要 Base64: 许多系统和协议最初设计时只能处理文本数据。当你需要通过这些纯文本通道发送二进制数据(图片、文件、加密内容)时,Base64 提供了一种安全的表示方式,不会被字符编码问题、特殊字符或传输机制破坏。 常见使用场景: - 邮件附件(MIME):二进制文件通过 Base64 编码后进行邮件传输 - Data URI:使用 data:image/png;base64,... 在 HTML/CSS 中直接嵌入图片 - HTTP Basic 认证:凭证以 Base64 编码后放入 Authorization 头 - JSON Web Token(JWT):头部和载荷部分使用 Base64 编码 - API 载荷:JSON API 中的二进制数据通常使用 Base64 编码 - URL 参数:使用 Base64URL 变体在 URL 中安全传递二进制数据 - 证书编码:PEM 文件使用 Base64 编码 X.509 证书 Base64 工作原理: 1. 输入数据被分成 3 字节(24 位)的组 2. 每个 24 位组被分成四个 6 位段 3. 每个 6 位值映射到 Base64 字母表中的一个字符 4. 如果输入不能被 3 整除,则添加填充字符(=) 编码输出大约比原始二进制数据大 33%。对于文本输入,大小增加取决于所使用的字符编码。
使用方法
- 选择操作模式:选择 'Encode' 将文本或二进制数据转换为 Base64,或选择 'Decode' 将 Base64 字符串转换回原始格式。在许多情况下,工具会根据你的输入自动检测模式。
- 编码模式:将文本粘贴或输入到输入区域。可以是纯文本、JSON、HTML 或任何字符串内容。对于二进制数据,使用文件上传按钮从设备中选择文件——工具会自动读取并编码。
- 解码模式:将 Base64 编码的字符串粘贴到输入区域。工具处理标准 Base64(使用 + 和 /)以及 Base64URL(使用 - 和 _)变体。它也处理有或没有填充字符(=)的字符串。
- 选择编码选项。对于文本编码,选择输入的字符编码(UTF-8 是默认且推荐的)。对于解码,选择以文本(UTF-8)输出还是以下载二进制文件形式输出。
- 点击 'Encode' 或 'Decode' 按钮执行转换。结果立即出现在输出区域。对于大文件,进度指示器显示编码/解码状态。
- 使用 'Copy' 按钮将结果复制到剪贴板,或下载为文件。对于解码后的二进制数据,下载按钮会以正确的 MIME 类型和扩展名保存原始文件。
计算示例
输入: 编码: Hello World
过程: ASCII → 二进制 → 6位分组 → Base64字母表
结果: SGVsbG8gV29ybGQ=
输入: 解码: SGVsbG8gV29ybGQ=
过程: Base64字母表 → 6位分组 → 二进制 → ASCII
结果: Hello World
输入: 编码: user:pass (基本认证)
过程: UTF-8字节 → Base64
结果: dXNlcjpwYXNz
相关搜索
相关搜索:base64 编码, base64 解码, base64 转换, base64 在线。
base64 编码base64 解码base64 转换base64 在线
常见问题
Base64 和 Base64URL 有什么区别?
Base64URL 是专为 URL 和文件名使用而设计的 Base64 变体。它将 '+' 替换为 '-','/' 替换为 '_',并通常省略填充字符 '='。这样做使得输出可以直接包含在 URL 参数中而无需额外的百分号编码。本工具支持标准 Base64 和 Base64URL 两种格式的编码和解码。
可以用这个工具编码文件和图片吗?
可以。使用文件上传按钮从设备中选择任何文件——图片、PDF、文档或任何二进制文件。工具使用 FileReader API 读取文件并将其编码为 Base64。生成的 Base64 字符串可用于 Data URI、嵌入 JSON 载荷或存储在数据库中。对于大文件(超过 10MB),编码可能需要几秒钟,具体取决于你的设备性能。
Base64 编码和加密是一样的吗?
不,完全不一样。Base64 是编码方案,不是加密。任何人都可以将 Base64 数据解码回原始形式——没有密钥或密码参与。绝不应该使用 Base64 来保护敏感数据。如果需要加密数据,请使用 AES-256 等正确的加密算法。Base64 仅用于在文本格式中安全表示二进制数据,不用于安全保护。
为什么我的 Base64 字符串末尾有一个或两个等号?
等号(=)是填充字符。Base64 以 3 字节为一组编码数据,产生 4 个输出字符。如果输入长度不是 3 的倍数,则添加填充使输出长度成为 4 的倍数。剩余 1 个字节产生 2 个字符 + 2 个填充符号(==),剩余 2 个字节产生 3 个字符 + 1 个填充符号(=)。大多数实现正确解码都需要填充。
如何在不同的编程语言中处理 Base64?
大多数语言都有内置的 Base64 支持。在 JavaScript 中:btoa() 编码,atob() 解码(对于二进制数据,使用 FileReader 或 Buffer)。在 Python 中:base64.b64encode() 和 base64.b64decode()。在 Java 中:java.util.Base64.getEncoder() 和 getDecoder()。在 C# 中:Convert.ToBase64String() 和 Convert.FromBase64String()。在 PHP 中:base64_encode() 和 base64_decode()。所有这些处理带填充的标准 Base64 字母表。