Skip to content
Zoyku

ULID 生成器

生成可排序的 26 字符唯一标识符 ULID——自带毫秒时间戳,还能把任意 ULID 反解出创建时间。

ULID 列表时间戳(毫秒)

由 crypto.getRandomValues 本地生成——48 位时间戳 + 80 位随机数,Crockford Base32 编码,共 26 字符。

该工具完全在你的浏览器中运行,数据不会离开你的设备,不会上传到任何服务器。

使用方法

  1. 1点击生成得到一批 ULID(或粘贴一个进行解码)。
  2. 2每个 ULID 都显示内嵌时间戳——它的创建时间,ISO 格式。
  3. 3单独复制或整批复制,用于测试数据、数据库种子或日志分析。

ULID 生成器

UUIDv4 是纯随机的,带着它的数据库记录排出来一团乱:索引碎片化,按时间查询还得另开一列。ULID(通用唯一可字典排序标识符)把 48 位毫秒时间戳放在最前面,后接 80 位随机数——26 个 Crockford Base32 字符,按普通字符串排序即为时间顺序。

Crockford 字母表(0-9 加 A-Z 去掉 I、L、O、U)避开了手写和转写时最容易认错的字符:没有 I/1 混淆,没有 O/0 混淆。本工具的随机部分用 crypto.getRandomValues,时间部分取自系统时钟,完全符合 ULID 规范。

除了生成,把已有的 ULID 粘贴进来即可解码:内嵌时间戳会被提取并以 ISO 日期显示——日志里的每个 ULID 从此自带创建时间。批量模式一次最多生成 50 个,时间戳取同一瞬间。

常见问题

为什么选 ULID 而不是 UUIDv4?

为了排序。ULID 前 10 个字符编码了创建时间戳,字典序即时间序——主键在索引里聚集、按时间的范围查询直接可用、日志自然排好。UUIDv4 没有这些性质;ULID 同时保持 128 位的抗碰撞性。

Crockford Base32 是什么,为什么不用 hex 或 base64?

Crockford Base32 用 32 个字符(数字加去掉 I、L、O、U 的 A-Z),专为人工转写设计:没有形近的字母数字混淆,且不区分大小写。比 hex 密集 25%;比 base64 少了 +、/ 和 =,放进 URL、文件名、XML 都不需要转义。

同一毫秒生成的两个 ULID 会冲突吗?

实际上不会:80 位随机数在同一毫秒内提供约 1.2 × 10²⁴ 种可能。ULID 规范还定义了单调生成(同毫秒内递增随机部分),本工具的批量模式天然满足——每批内的每个值互不相同。

输出能直接进生产代码吗?

可以。格式化、转义、转换都遵循对应规范(RFC、W3C、JSON Schema),而且全程本地执行,提交前你可以先本地验证结果。

大输入能处理吗?

可以。全部本地运行,几 MB 的 JSON 或超长正则测试只受你机器性能限制,不受请求大小限制。

这个工具免费吗?

完全免费 — 无需注册、没有订阅、无每日限额,输出不带水印。

嵌入这个工具

一行代码把工具放到你的网站——它在访客的浏览器里运行。

<iframe src="https://zoyku.com/zh/tools/ulid-generator?embed=1" width="100%" height="640" style="border:0;border-radius:16px" title="Zoyku — ulid-generator" loading="lazy"></iframe>
100% 本地处理