base64 2025-02-10
Base64 编码解析:工作原理和使用场景
全面解释 Base64 编码、其背后的算法以及在 Web 开发中的实际用例。
Base64 编码是计算中最基本的编码方案之一。无论是在电子邮件中嵌入图像、在 JSON 中存储二进制数据,还是处理身份验证令牌,Base64 无处不在。
Base64 到底是什么?
Base64 是一种将二进制数据转换为 64 个可打印 ASCII 字符字符串的二进制到文本编码方案。
Base64 字母表
标准 Base64 字母表由以下组成:
A-Z(索引 0-25)a-z(索引 26-51)0-9(索引 52-61)+(索引 62)/(索引 63)=(填充字符)
逐步编码过程
让我们逐步编码字符串 "Hi!":
1. 转换为二进制:H=01001000, i=01101001, !=00100001
2. 连接:010010000110100100100001
3. 分成 6 位组:010010 000110 100100 100001
4. 转换为十进制:18, 6, 36, 33
5. 映射到 Base64 字母表:S, G, k, h
6. 结果:SGkh
填充说明
当输入长度不能被 3 整除时,添加 = 填充。
URL 安全的 Base64
标准 Base64 使用在 URL 中有特殊含义的 + 和 /。URL 安全的 Base64(Base64url)将:
+替换为-/替换为_- 填充
=通常被省略
此变体在 RFC 4648 中指定,用于 JWT 令牌和其他 URL 敏感的上下文。
常见用例
HTML/CSS 中的数据 URI
电子邮件附件(MIME)
SMTP 等电子邮件协议仅支持 7 位 ASCII。Base64 允许安全传输二进制文件。
HTTP 基本认证
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
大小开销
Base64 编码将数据大小增加约 33%。每 3 字节输入产生 4 字节输出。
重要提醒
- Base64 是编码,不是加密。它不提供安全性。
- 始终考虑 33% 的大小增加
- 当 Base64 字符串出现在 URL 中时,使用 URL 安全变体
尝试我们的 Base64 编码器/解码器工具进行即时编码和解码。