Base62 编码是一种将 10 进制整数转换为 62 进制字符的算法。它通过使用数字、大小写字母的组合,在保持 URL 安全 的前提下,实现了极高的数值压缩效率,是短链接服务的核心基石。
一、 为什么需要它?
在处理海量数据标识时,我们经常面临“长度”与“安全”的权衡:
| 方案 | 核心逻辑 | 优势 | 痛点 |
|---|---|---|---|
| Base10 | 纯数字 (0-9) | 天然 URL 安全 | 表达大数值时字符串过长 |
| Base16 | 十六进制 (0-F) | 机器友好 | 压缩率提升有限 |
| Base62 | 62 个字符 | 长度短、无特殊符号 | 字符集顺序无统一 RFC 标准 |
| Base64 | 64 个字符 | 压缩率极高 | 包含 + / =,在 URL 中需二次转义 |
二、 核心机制
Base62 使用 10 个数字 + 26 个小写字母 + 26 个大写字母。
标准顺序通常为:0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
三、 应用场景
- 短链接生成:将自增 ID(如
123456789)压缩为短路径(如8M9v)。 - 唯一短 ID:生成美观、易读的分享码或邀请码。
- 防遍历 (Security by Obscurity):通过打乱字符集顺序,让攻击者无法轻易推测出下一个有效的 ID。
总结
Base62 是 “可读性、长度、安全性” 的完美平衡点。它比 Base10 更短,比 Base64 更安全,是分布式系统中替代长 UUID、美化 URL 路径的首选方案。