🆔

ULID 生成器

生成 128 位、基于毫秒时间戳的可排序通用唯一字典序 ID(ULID),兼具 UUID 的全局唯一性与按创建时间自然排序的能力。适合分布式日志、事件溯源、数据库主键与高并发分页等需要单调有序标识的场景。

8 ULID · 可按时间排序
ULID生成结果
0101KXR2ZSREKSR8N9SGCBSC6RY72026-07-17 13:06:55
0201KXR2ZSRECBYQWDXFGT7N1SAQ2026-07-17 13:06:55
0301KXR2ZSRE301GDDWR4RZNVRWW2026-07-17 13:06:55
0401KXR2ZSRECS61K0ZE0E95W79T2026-07-17 13:06:55
0501KXR2ZSREMFW1WBCMM6NRVQSJ2026-07-17 13:06:55
0601KXR2ZSREEGSBKWJWD26CX3F22026-07-17 13:06:55
0701KXR2ZSRE7JWR286K10MSWJSM2026-07-17 13:06:55
0801KXR2ZSREA2XBKXR5DGST2T3P2026-07-17 13:06:55

关于 ULID 生成器

ULID 是一种 26 字符的标识符,既像 UUID 一样全局唯一,又比 UUID 多了一个关键优势:它的前 48 位是毫秒时间戳,因此生成的 ID 天然按时间递增、可排序。本工具用浏览器的密码学安全随机源在本地生成符合规范的 ULID,采用大小写不敏感、去除易混字符的 Crockford Base32 编码,可批量产出。所有 ID 都在本地计算、不联网,适合给数据库主键、日志条目或事件做既唯一又可按时间排序的标识。 建议在日常开发中收藏本工具,需要生成密钥或哈希值时即可快速打开使用。所有计算均在浏览器本地完成,敏感数据不会上传,可放心操作。

使用场景

  • 可排序主键 — 用 ULID 做数据库主键,写入顺序与时间一致,利于范围查询和索引局部性。
  • 日志/事件 ID — 给日志或事件流分配能按时间排序的唯一标识,便于追踪先后。
  • 分布式生成 — 多个节点无需协调即可生成不冲突且大致有序的 ID。
  • 替代自增主键 — 在不暴露记录总量的前提下获得有序 ID,比自增更安全。
  • 批量预生成 — 一次生成多条 ULID 用于批量导入或预分配标识。

常见问题

ULID 和 UUID 该怎么选?

需要随机性、跨系统标准兼容选 UUID;需要按时间排序、对数据库索引更友好选 ULID。ULID 的时间前缀让新记录总排在后面,避免随机 UUID 造成的索引碎片。需要 UUID 可用本站的 UUID 生成器。

ULID 一定单调递增吗?

在毫秒粒度上是按时间递增的,但同一毫秒内生成的多个 ULID 顺序由随机部分决定。规范提供了单调模式,可在同毫秒内对随机位递增以保证严格有序。

为什么用 Crockford Base32?

这种编码去掉了 I、L、O、U 等易与数字混淆或拼成脏词的字符,大小写不敏感,更适合人工抄写和在 URL 中使用。

ULID 会暴露生成时间吗?

会。前 10 个字符可解码出毫秒级时间戳,这在需要排序时是优点,但若不希望泄露创建时间,则应改用纯随机的标识。

26 个字符会重复吗?

时间戳占 48 位、随机部分占 80 位。同一毫秒内要发生碰撞需生成天文数字级别的 ID,实际使用中可视为唯一。

有浏览器兼容性要求吗?

本工具兼容所有现代浏览器(Chrome、Firefox、Edge、Safari),无需安装任何插件或扩展。

可以离线使用吗?

首次加载后,部分功能在离线状态下仍可使用。页面资源加载后,核心逻辑完全在浏览器本地运行,不依赖网络。