一站式在线工具库

ULID 生成器

什么是 ULID 生成器?

ULID 生成器 是一种创建 通用唯一字典序可排序标识符(ULID) 的工具——使用 Crockford Base32 编码的 26 字符标识符。ULID 被设计为 UUID 的更高效替代方案,与 UUID 保持 128 位兼容,同时可 按创建时间排序

每个 ULID 由一个 48 位时间戳组件(毫秒精度,可持续到约 10889 年)和一个 80 位随机组件 组成。这种设计使 ULID 非常适合需要时间顺序排序的 分布式系统数据库主键事件溯源 等场景。

核心功能

  • 即时生成:毫秒级生成加密随机 ULID
  • 批量生成:一键同时生成 1 到 100 个 ULID
  • 可排序设计:ULID 按字典序可排序——新 ID 总在旧 ID 之后
  • 双输出格式:选择原始文本(换行分隔)或格式化 JSON 数组
  • 一键复制:将所有生成的 ULID 即时复制到剪贴板
  • 即时刷新:一键生成新的 ULID 集合
  • 客户端处理:所有计算在浏览器中完成——零数据上传
  • 离线支持:初始页面加载后无需网络即可工作

ULID 的实用场景

  • 数据库主键:在 PostgreSQL、MySQL 等数据库中使用可排序主键——无需自增即可保持顺序
  • 分布式系统:无需中央协调即可在多个节点间生成无冲突标识符
  • 事件溯源与日志:按时间排序的 ID 便于按序重放和分析事件流
  • 微服务:创建可跨服务边界按时间排序的唯一请求追踪 ID
  • 消息队列:作为保留时间顺序的消息 ID
  • 实时应用:ULID 适用于聊天消息、通知和活动动态流

如何使用 ULID 生成器

  1. 设置数量:使用滑块选择要生成的 ULID 数量(1 到 100)
  2. 选择输出格式:选择原始(换行分隔,适合批量复制)或 JSON(结构化数据,适合编程使用)
  3. 复制结果:点击复制按钮将所有 ULID 复制到剪贴板
  4. 刷新:点击刷新生成带有更新时间戳的新 ULID 集合

所有处理均在浏览器本地完成。

关于 ULID 的常见问题

什么是 ULID,它与 UUID 有什么不同?
ULID 代表通用唯一字典序可排序标识符,是使用 Crockford Base32 编码的 26 字符标识符。与 UUID(默认不可排序)不同,ULID 设计为可进行字典序排序,因为它以时间戳组件开头。ULID 也比 UUID 更友好于 URL,因为它使用不区分大小写的字符集且避免特殊字符。两者均提供 128 位兼容性,但在需要时间顺序排序时通常更倾向于使用 ULID。
ULID 真的可排序吗?时间戳是如何工作的?
是的,ULID 本质上是可排序的。前 48 位(Base32 中的 10 个字符)表示自 Unix 纪元(1970-01-01)以来的毫秒级创建时间戳。这意味着后创建的 ULID 在字典序上总会排在先创建的 ULID 之后。毫秒级精度提供了约 10 个字符的可排序前缀,使其非常适用于数据库索引和事件流。时间戳容量可持续到约公元 10889 年。
ULID 可以用作数据库主键吗?
是的,ULID 是非常优秀的数据库主键,特别是与 UUID 相比。它们的可排序特性意味着可以在 B 树结构中高效索引,而不会出现随机 UUID 导致的分片问题。许多数据库如 PostgreSQL、MySQL 和 MongoDB 都能很好地处理 ULID。它们还提供比 UUID 更好的缓存局部性,因为新插入的数据大致是顺序的。
ULID 中使用的 Crockford Base32 编码是什么?
Crockford Base32 是由 Douglas Crockford 设计的人类可读编码方案。它使用 32 个字符:0-9 和 A-Z(排除 I、L、O、U 以避免与 1、L、0 和 V 混淆)。该编码不区分大小写,使 ULID 易于口头传达和手动输入。与 base64 不同,Base32 避免使用特殊字符,使 ULID 可在 URL、文件名和数据库标识符中安全使用而无需转义。
这个 ULID 生成器安全且私密吗?
是的,绝对安全。ULID 生成器完全在浏览器内使用加密安全的 ulid 库运行。所有计算都在客户端进行——没有数据发送到任何服务器。生成的 ULID 使用高熵随机性作为随机组件(80 位)。初始页面加载后,即使没有互联网连接,该工具也能继续工作,确保完全隐私和可用性。