ULID 生成器

🔮 ULID Generator

📐 工作原理与说明
128 bit = 48 bit 时间戳(毫秒,大端)+ 80 bit 随机
字符串:26 字符 Crockford Base32
ULID 用 128 位表示:前 48 位是毫秒级 Unix 时间戳(大端),后 80 位是密码学安全随机值。字符串形式编码为 26 字符 Crockford Base32(去掉 I、L、O、U 避免混淆与脏词,大小写不敏感)。时间戳在高位使 ULID 天然按生成时间字典序排列,可直接作为数据库主键或日志排序键,同时避免自增 ID 暴露业务规模。80 位随机保证同一毫秒内约 1.2×10²⁴ 种取值,碰撞可忽略。
5

📚 深度解析:ULID 生成器

💡 常见使用场景

  • 可排序、26 字符、Crocksford base32 编码。
  • 给需要按时间排序的日志或事件生成 ID:字符串顺序即生成顺序,可直接用作数据库主键与范围查询条件。
生成
`01ARZ3NDEKTSV4RRFFQ69G5FAV`(前 10 字符为时间)。

❓ 常见问题(FAQ)

ULID 大小写敏感吗?
不敏感,字母表排除 I L O U 防误读。
同一毫秒内生成的会碰撞吗?
概率极低。ULID 的后 80 位是随机值,同一毫秒内约 1.2×10²⁴ 种取值;即便每秒生成百万个 ID,碰撞概率也可忽略。但要注意:若在同一毫秒内批量生成且实现存在缺陷(如随机源不当、计数器未正确递增),仍可能碰撞,应使用成熟库。
⚠️ 使用说明与注意事项
📖关于「ULID 生成器」 ▼

📝工具简介

Generate ULIDs: lexicographically sortable 128-bit identifiers with a time prefix.