解码(直接使用)

编码 (直接使用)

Base64 = 把二进制数据,用 64 个可打印 ASCII 字符来表示
编码目的
-
- 让二进制能在文本协议里传输
-
- 避免编码 / 传输错误
为什么需要 Base64?(核心动机)
原始问题
- HTTP Header / JSON / XML 不能放二进制
- 邮件(SMTP)只认 ASCII
- 某些系统会把 0x00、0xFF 截断
Base64 解决什么?
问题 Base64
-
- 二进制 转成文本
-
- 不会乱码
-
- 传输安全 ASCII
Base64 的本质原理
核心思想
每 3 字节 → 变成 4 个字符
数学关系
3 bytes = 24 bits
↓
4 × 6 bits = 24 bits
编码表(标准 Base64)
| 值 | 字符 |
|---|---|
| 0–25 | A–Z |
| 26–51 | a–z |
| 52–61 | 0–9 |
| 62 | + |
| 63 | / |
编码过程
原始字节:
0x4D 0x61 0x6E
二进制:
01001101 01100001 01101110
重排成 6 bit 一组:
010011 010110 000101 101110
四、解码原理(逆向)
-
- 查表 → 6 bit 值
-
- 拼接 → 24 bit
-
- 拆成 → 3 字节
-
- 丢弃 = 填充
✅ 解码是编码的严格逆运算
五、Base64 ≠ 加密(99% 的人误解)
项目 结论
是否加密 ❌
是否可逆 ✅
是否安全 ❌
是否防偷看 ❌
👉 Base64 只是编码,不是加密
六、URL Safe Base64(你一定会遇到)
标准 Base64:
+/=
URL 里会出问题 ❌
✅ URL Safe:
- _
转换
+ → -
/ → _
= → (通常去掉)
八、一眼识别 Base64
✅ 是 Base64:
• 字符集只有:A–Z a–z 0–9 + / =
• 长度是 4 的倍数
• 结尾可能有 = / ==
❌ 不是 Base64:
• 有 { }
• 有 %
• 有 \u
• 有奇怪符号
✅ Base64 = 把 8bit 二进制 → 6bit 文本表示
✅ 3 字节变 4 字符
✅ 不是加密,只是编码

247

被折叠的 条评论
为什么被折叠?



