Base62 编码是使用小写字母 26 个 (a-z) + 大写字母 26 个 (A-Z) + 数字 10 个 (0-9),共计 62 个字符来表示数据的编码方式。它是短链接短码生成中最广泛使用的方法。
为什么 Base62 适合短链接?用数字来说明。6 位 Base62 编码可以表示的模式数为 62 的 6 次方,约 568 亿种。7 位则约 3.5 万亿种。这个规模即使全球的短链接服务运营数十年也不会耗尽。
在短链接服务的内部实现中,通常为每个 URL 分配一个唯一的整数 ID,然后将该 ID 转换为 Base62 来生成短码。例如,ID = 12345 转换为 Base62 后变为「3d7」(3 个字符)。ID 越大,编码越长,但在数百亿条记录以内都可以控制在 6 个字符以内。
与 Base62 类似的方式有 Base64,但 Base64 包含「+」和「/」,在 URL 中使用时需要进行编码处理。Base62 仅由 URL 安全的字符组成,因此无需额外的编码处理。这就是短链接中偏好使用 Base62 的原因。
Base62 的实现非常简单,只需将十进制数转换为六十二进制数即可。在大多数编程语言中只需几行代码就能实现。但需要注意的是,如果直接将连续 ID 转换为 Base62,短码会变得可预测,存在安全隐患。作为对策,可以在 ID 上添加随机偏移量,或结合哈希函数使用。相关书籍可在 Amazon 上查找。