跳到正文
马克工具箱

ULID 生成器

批量生成 ULID(通用唯一的字典序可排序标识符),适合做数据库主键、日志和消息 ID。也可以粘贴一个 ULID,查看它的创建时间。随机部分来自浏览器的安全随机数。

在浏览器本地运行,输入的内容和文件都不会上传

26 个字符,按时间有序,使用 URL 安全的 Crockford Base32。

生成约 1558.9亿 个 ID 后,出现任意一次碰撞的概率才达到 1%。

解析 ID

使用步骤

  1. 选择数量,页面会立即生成一批 ULID;点「生成」换一批。
  2. 需要小写时,取消「大写」。
  3. 复制列表或下载为文本文件。
  4. 要查看某个 ULID 的时间,把它粘贴到「解析 ID」里。

参数说明

结构
前 10 个字符是 48 位毫秒级 Unix 时间戳,后 16 个字符是 80 位随机数,共 26 个字符。
字符集
Crockford Base32,去掉了容易混淆的 I、L、O、U,URL 安全,解析时不区分大小写。
大写
规范推荐大写输出;小写也是合法的 ULID。

示例

01ARZ3NDEKTSV4RRFFQ69G5FAV

前 10 位 01ARZ3NDEK 是时间戳(2016-07-30 23:54:10.259 UTC),后 16 位是随机数。

常见问题

ULID 和 UUID 有什么区别?

ULID 同样是 128 位,但以时间戳开头,按字符串排序就是按创建时间排序;写成 26 个字符,比 UUID 的 36 个字符更短,也不含连字符。需要标准 UUID 格式时,可以用 UUID v7,它同样按时间排序。

同一毫秒内生成的 ULID 会按顺序排列吗?

这里生成的 ULID 在同一毫秒内随机部分各自独立,彼此之间的先后顺序是随机的;不同毫秒之间按时间排序。

会重复吗?

只有同一毫秒内生成的 ULID 才可能重复,而 80 位随机数要在同一毫秒内生成约 1.56 × 10¹¹ 个,才有 1% 的概率出现重复。

能从 ULID 看出创建时间吗?

能,精确到毫秒。如果创建时间属于敏感信息,对外暴露的 ID 请用完全随机的 UUID v4 或 Nano ID。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具