UUID 与 ULID 生成器
批量生成 UUID v4、UUID v7 和 ULID,或粘贴一个 ID 查看其版本、变体和时间戳。
代码示例
可直接复制到你自己的项目中。每个示例只使用该语言的标准库,因此无需安装任何东西。
console.log(crypto.randomUUID())它能做什么
批量生成 UUID 和 ULID,或粘贴一个已有的 ID 来读取它的版本、变体和时间戳。ID 由你浏览器的安全随机数生成器生成,绝不会离开你的设备。
如何使用
- 选择 UUID v4(完全随机)、UUID v7(按时间排序)或 ULID(按时间排序,26 个字符)。
- 设置需要的数量,然后选择是否使用大写字母和连字符。
- 点击生成。ID 会出现在输入框中,每行一个,每个 ID 的详细信息显示在输出中。
- 也可以粘贴你自己的 ID(每行一个)来检查。花括号、
urn:uuid:前缀和缺少的连字符都可以接受。
示例
一个版本 7 的 UUID,以及工具从中读取到的信息:
017f22e2-79b0-7cc3-98c4-dc0c0c07398f
v7 · RFC 9562 · 2022-02-22T19:22:22.000Z
须知
- 版本 7 和 ULID 以毫秒时间戳开头,所以它们会按创建顺序排序,这能让数据库索引保持紧凑。
- 在同一毫秒内生成的 ID 会递增,因此既保持唯一,也保持有序。
- 版本 4 不会透露它是何时生成的。
- 全零的空 UUID(nil)和全一的最大 UUID(max)会被识别为特殊值。
什么是 UUID 和 ULID?
UUID 是一个 128 位的标识符,可以在任何地方无需协调地生成。版本 4 完全随机。版本 7 以毫秒时间戳开头,因此 ID 按创建顺序排序,数据库索引也更紧凑。ULID 用 26 个字符承载与 UUID 版本 7 相同的信息。
常见问题
数据库主键应该用哪一种?
优先选择版本 7 或 ULID:两者都按创建时间排序,新行会追加到末尾,而不是分散在索引各处。如果 ID 不应泄露创建时间,请使用版本 4。
两个 ID 会冲突吗?
版本 4 有 122 位随机数,冲突几乎不可能。版本 7 和 ULID 把时间戳与随机位结合,同一毫秒内的 ID 会依次递增,从而保持唯一和有序。
这个工具会把我的 ID 发送到别处吗?
不会。ID 由浏览器的安全随机数生成器生成,并在你的设备上检查。你输入的内容不会发送到我们的服务器。