跳到主要内容

短链服务设计与分布式ID生成

唯一码生成的技术难点

在用户邀请、活动分享等场景中,需要为每个资源生成一个简短且唯一的标识码。这类需求看似简单,却隐藏着多个技术挑战:

发号器 + Base58编码方案

为什么选择Base58而非Base62

Base58是比特币地址采用的编码方案,相比Base62有更好的可读性:

对比项Base62Base58
字符数62个58个
排除字符0/O/I/l
易混淆0和O、1和l容易混淆去除易混淆字符
适用场景程序内部用户可见场景

Base58字符集:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

使用7位Base58编码可表示:58^7 ≈ 2.2万亿种组合。