NanoID是一款轻量级(仅130字节)、URL安全的唯一ID生成器,比UUID更短更紧凑。它在GitHub上获得了超过24,000颗星标,被数百万开发者使用。
| 特性 | NanoID | UUID v4 |
|---|---|---|
| 长度 | 21字符(默认) | 36字符(含连字符) |
| 库体积 | 130字节 | 数KB |
| URL安全 | ✅ 默认安全 | 需编码 |
| 速度 | 快 | 较慢 |
| 可定制 | ✅ 长度+字符集 | ❌ 固定格式 |
NanoID使用crypto.getRandomValues()(加密安全随机数),碰撞概率由公式 P ≈ n²/(2·A^L) 决定,其中 A 为字符集大小,L 为ID长度。默认配置(64字符集×21长度)下,每秒1000个ID需要约149万亿年才会达到1%碰撞概率。
NanoID适用于数据库主键、短链接ID、文件名生成、会话标识符、跟踪代码、订单编号等所有需要唯一标识符的场景。其URL安全特性使得它特别适合Web开发。