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.
什么是 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选择 v4 random 或 v7 time-ordered,设置需要的数量(最多 1,000 个),然后点击 Generate 或按 Ctrl+Enter。
- 2选择书写形式:大写、带或不带连字符、像 GUID 常见的那样加花括号,或者加上
urn:uuid:前缀。列表会随之更新,不会生成新值。 - 3用每行的按钮复制单个值,或用 Copy all 复制整个列表。Download(Ctrl+S)会把列表保存为文本文件,每行一个。
- 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 是在服务器上生成的吗?
不是。它们在页面加载后由你的浏览器生成,不会被保存,也不会发送到任何地方。