用途:通用二进制编码(邮件、JSON、文件传输)
字符集:A–Z a–z 0–9 + /
特点:
①每 3 字节 → 4 字符
②使用 = 作为 padding
③体积增加约 33%
④不适合 URL
示例:Hello → SGVsbG8=
用途:Web URL、JWT Token
字符集变化:① + → - ② / → _
特点: ①URL 安全,适合 query / path ②通常去掉 padding(=)
用途:TOTP、DNS、安全系统
字符集:A–Z 2–7
特点:
①更安全但更长
②只使用大写字母和数字 2–7
③适合人工输入减少错误
④使用 = 作为 padding
用途:RFC 兼容系统
字符集:0–9 A–V
特点:①与十六进制风格更接近 ②机器友好 ③使用 = 作为 padding
用途:区块链(Bitcoin、IPFS)
字符集:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
特点: ①去掉 0 O I l + / 等易混字符 ②无 padding ③适合人工复制输入
用途:HTTP GET 参数传递
规则:①空格 → + ②特殊字符 → %XX
示例:① hello world → hello+world ② hello? → hello%3F
| 编码 | 字符集 | Padding | URL安全 | 用途 |
|---|---|---|---|---|
| Base64 Std | A–Z a–z 0–9 + / | = | ❌ | 通用传输 |
| Base64 URL | A–Z a–z 0–9 - _ | ✅ | JWT / Web | |
| Base32 Std | A–Z 2–7 | = | ❌ | TOTP / DNS |
| Base32 HEX | 0–9 A–V | = | ❌ | RFC 系统 |
| Base58 | 1-9 A-Z a-Z (剔除字母o,O) | ✅ | 区块链地址 | |
| URL Query | %XX 编码 | ✅ | HTTP 参数 |