UL

ULID 生成器

生成可按时间排序的 ULID,适合日志与分布式场景

ID 生成
🔒 100% 本地运行 — 你的数据不会离开当前页面
由 Evan 维护•最近更新:2026年9月30日
选项模式
设置

先选数量和大小写,直接生成 ULID;排序性和时间戳解读可在高级模式查看。

ULID Result
Generated ULIDs will appear here
🔒 浏览器内本地处理
页面阅读模式

完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。

工具说明

每批生成 1–50 个 ULID,包含 48 位 Unix 毫秒时间戳和来自浏览器加密随机源的 80 位随机数。支持时间范围为 0–281474976710655 ms。切换大小写只重新格式化已有结果。字典序对应编码时间戳,但本工具不保证同毫秒或时钟回拨时严格递增。仍可能碰撞,不提供唯一性协调,也不用于生成凭据。设置保存在本地,工具不持久保存生成 ID。

生产可用片段

示例

text

00000000000000000000000000 → Unix 毫秒 0
7ZZZZZZZZZZZZZZZZZZZZZZZZZ → 最大 ULID

场景配方

01

检查批次而不假定严格顺序

目标:生成日志测试 ID 并核对其编码时间。

  1. 生成五个 ULID。
  2. 打开高级模式查看首条时间戳、不同值数量与字典序标记。
  3. 切换大小写,确认标识符本身没有变化。

结果:时间前缀便于分组,但不能证明实际顺序或唯一性。

失败门诊(高频踩坑)

时钟顺序不等于事件顺序

原因:同毫秒随机数与时钟回拨都可能影响字典序。

修复:需要严格顺序时使用应用排序元数据或合适的协调生成器。

常见问题

ULID 包含哪些字段?

包含 48 位 Unix 毫秒时间与 80 位随机数,以 26 个 Crockford Base32 字符表示。最大值以 7 开头,超范围时间会被拒绝。

一次能生成多少条?

数量必须是 1–50 的整数。小数、空值和越界值会报错,不会静默取整。

ID 严格递增且全局唯一吗?

不保证。同毫秒内受随机部分影响,时钟回拨也可能让后生成的 ID 排在前面;适当使用时碰撞概率低,但并非绝对不会重复。

切换大小写会重新生成吗?

不会,大写和小写表示相同的 ULID,选项只格式化当前结果。

浏览器随机源失败会怎样?

停止生成、清空旧结果并显示错误,不会退回使用 Math.random。

生成结果会上传或保存吗?

生成在本地完成;数量和大小写设置保存在当前浏览器,工具不持久保存生成 ID。清空可删除保存设置。

继续浏览