UUID 生成器

在浏览器中运行,不上传任何内容

生成版本 4 或版本 7 的 UUID,一次一个或一千个,并查看任意 UUID 的版本、变体和时间戳。

Generated

Generating…

Inspect

Shows the version, the variant and, for time-based UUIDs (versions 1, 6 and 7), when it was made. Choose Inspect on a generated value to try it.

Ready
lowercase, dashes

什么是 UUID?

UUID(通用唯一标识符)也叫 GUID,是一个 128 位的值,写成分为五组的 32 个十六进制数字,例如 3f2b8c1e-9a4d-4e7b-b5c2-6d1f0a8e9c47。任何人都可以自行生成,无需询问中央服务器,并且几乎可以确定不会有别人生成相同的值。RFC 9562 定义了这些格式。

版本 4 是随机的:128 位中有 122 位来自安全的随机数生成器。版本 7 以毫秒级 Unix 时间开头,后面跟随机位,因此值会按创建时间排序。这让 v7 更适合做数据库主键,因为新行会追加到索引末尾,而不是随机位置。看第三组的第一位数字就能分辨版本:4 或 7。

API 用 UUID 作为资源 ID、幂等键和请求 ID。在测试中,它们能为每次运行提供唯一的名称和键;而一个格式正确但并不存在的 UUID,正好可以用来检查 API 返回的是 404 而不是 500。

使用方法

  1. 1选择 v4 random 或 v7 time-ordered,设置需要的数量(最多 1,000 个),然后点击 Generate 或按 Ctrl+Enter。
  2. 2选择书写形式:大写、带或不带连字符、像 GUID 常见的那样加花括号,或者加上 urn:uuid: 前缀。列表会随之更新,不会生成新值。
  3. 3用每行的按钮复制单个值,或用 Copy all 复制整个列表。Download(Ctrl+S)会把列表保存为文本文件,每行一个。
  4. 4把任意 UUID 粘贴到 Inspect,或在生成的某一行上选择 Inspect,即可查看它的版本、变体,以及(对版本 1、6、7 而言)生成时间。

问题排查

Inspect 提示值的位数不对
UUID 恰好有 32 个十六进制数字。从日志中复制的值有时会被截断,或者多带了字符;花括号、连字符和 urn:uuid: 前缀都是可以接受的。
变体不是 RFC 9562
较旧的 Microsoft 和 NCS 格式使用其他的变体位。对于这类值,版本位的含义与 RFC 9562 不同,所以工具只报告变体,不解读其余部分。
两个浏览器标签页生成的 v7 值排序不完全正确
在同一批次内,工具会保证 v7 值严格递增,即使是在同一毫秒内。不同标签页或不同机器在同一毫秒内生成的值可能会交错,这是 RFC 允许的。

常见问题

两个 UUID 会重复吗?

实际上不会。有 122 个随机位(v7 每毫秒有 74 个),你需要每秒生成数十亿个、持续很多年,才有可能出现重复。

这些 UUID 可以当作密钥使用吗?

它们来自浏览器的安全随机数生成器,但 UUID 是标识符而不是密钥,而且 v7 会暴露它的生成时间。令牌和密钥请使用密码生成器。

UUID 是在服务器上生成的吗?

不是。它们在页面加载后由你的浏览器生成,不会被保存,也不会发送到任何地方。