Base64编码/解码
快速编码解码Base64字符串,支持文本和文件转换
Base64编码文档
什么是Base64?
Base64是一种基于64个可打印字符来表示二进制数据的编码方式。这些字符包括大小写字母、数字和一些特殊符号。Base64广泛用于在需要通过纯文本渠道传输二进制数据的场景中,如电子邮件附件、URL参数等。
Base64编码算法原理
Base64编码过程可以分为以下步骤:
- 将输入数据拆分为每3个字节一组
- 将这3个字节(共24位)重新分组为4个6位的块
- 每个6位的值(范围0-63)作为索引映射到Base64字符表
- 如果最后一组不足3个字节,用0位填充并在结果末尾添加相应数量的等号(=)作为填充符号
Base64字符集: A-Z, a-z, 0-9, +, /
填充字符: =
示例转换:
文本 "Man" 的ASCII码: 77 97 110
二进制表示: 01001101 01100001 01101110
重组为6位: 010011 010110 000101 101110
十进制值: 19 22 5 46
Base64结果: T W F u
常见用途
- 电子邮件中的附件编码 (MIME标准)
- 在URL中安全传输数据 (使用Base64url变体,其中 '+' 和 '/' 替换为 '-' 和 '_')
- 将二进制图像嵌入到HTML或CSS中 (data URI方案)
- 存储简单数据为单一字符串 (如JWT令牌的组成部分)
- XML和JSON中包含二进制数据 (避免特殊字符转义问题)
注意事项
- Base64编码后的数据体积通常比原始数据增加约33% (因为3个字节变为4个字符)
- Base64不是加密算法,只是一种编码方式,不提供任何安全性
- 大文件的Base64编码可能会占用较多内存和处理时间
- URL安全的Base64变体使用不同的字符集,避免URL编码问题
- 标准Base64可能包含换行符以限制行长度,这在某些应用中需要额外处理
高级功能
16进制格式支持
我们的工具支持16进制格式输入和输出,对于处理程序代码中的二进制数据的开发者非常有用。
- 输入:接受0x11,0x22,0x33或简单的112233格式
- 输出:将解码的Base64转换回16进制格式以嵌入代码
字符集支持
不同的字符集将文本编码为字节的方式不同。我们的工具支持多种字符集来处理各种文本编码:
- UTF-8: UTF-8: 支持所有Unicode字符的通用编码(默认)
- ASCII: ASCII: 支持基本英文字符的7位编码(0-127)
- Latin-1 (ISO-8859-1): Latin-1 (ISO-8859-1): 支持西欧字符的8位编码
- UTF-16: UTF-16: Windows和Java常用的16位编码
Base64与其他编码的比较
| 编码方式 | 特点 | 主要用途 |
|---|---|---|
| Base64 | 使用64个ASCII字符表示二进制数据 | 电子邮件附件、二进制数据在文本中传输 |
| URL编码 | 将特殊字符转换为%XX格式 | URL参数传递、表单提交 |
| 16进制编码 | 每个字节用两个16进制字符表示 | 哈希值表示、二进制数据可视化 |
常见问题
Base64 是加密吗?
不,Base64 是一种编码方案,不是加密。它的目的是在文本协议(如邮件、网页)中安全传输二进制数据。任何人都可以将其解码。
为什么 Base64 会增加文件大小?
Base64 使用 4 个 ASCII 字符来表示每 3 个字节的二进制数据,这会导致数据大小增加约 33%(即 4/3)。
什么是"URL 安全"的 Base64?
标准 Base64 使用 '+' 和 '/' 字符。URL 安全的 Base64 将这些替换为 '-' 和 '_',以确保字符串在 URL 和文件名中也是安全的,不会引起解析错误。
我的数据安全吗?
是的。此工具完全在您的浏览器中使用 JavaScript 运行。您的文件和文本永远不会发送到我们的服务器,确保了 100% 的隐私安全。