UUID 生成器

生成符合 RFC 4122 标准的 UUID(通用唯一标识符),支持多种版本。加密安全,即时生成,支持批量操作。

生成 UUID

选择 UUID 版本并自定义选项

UUID v4(随机): 使用加密安全的随机数生成。最常用的版本。

生成的 UUID

点击"生成 UUID"创建唯一标识符

分析和验证 UUID

粘贴任何 UUID 以验证其格式、解码其版本、变体和嵌入时间戳

接受大写、小写、无连字符、{braces} 和 urn:uuid:前缀。

常见问题

我可以创建哪些 UUID 版本?

版本 1(基于时间)、版本 4(随机)、版本 5(命名空间和名称)、版本 7(按时间顺序随机)和特殊的 nil UUID,以及现有值的解析和验证。

UUID 加密安全吗?

安全。基于随机数的版本(v4/v7)使用加密安全的随机源,适合用作不可被猜测的标识符。

我可以一次生成多个吗?

可以。批量模式一键创建一整批,并复制和导出脚本和种子。

两个生成的 UUID 会发生冲突吗?

对于所有实际目的,不会。随机 UUID 具有 122 位熵,因此不太可能出现意外重复。

生成的 UUID 采用什么格式?

每个 UUID 的长度固定为 36 个字符:32 个十六进制数字按 8-4-4-4-12 模式分为五组,以连字符分隔,例如 3f2504e0-4f89-41d3-9a0c-0305e82c3301。输出为小写格式,可直接粘贴到代码、配置文件或数据库记录中,无需任何修剪。

可以复制生成的 UUID 或将其下载为文件吗?

可以。点击任意单个 UUID 即可立即复制,也可以使用“全部复制”按钮一次复制整个列表。批量生成结果还可以下载为纯文本文件,每行一个 UUID,方便用于代码、电子表格或测试数据。

我生成的 UUID 会被存储或发送到任何地方吗?

生成过程完全在您的浏览器内进行,使用您设备的随机数来源,因此不会向服务器传输任何标识符或输入内容。页面加载完成后,您甚至可以在离线状态下继续生成,每个 UUID 都私密地保存在您自己的电脑上。

这些 UUID 可以用作数据库主键吗?

可以。UUID v4 在 PostgreSQL、MySQL、MongoDB 及大多数 ORM 中都可以作为主键,因为其值在不同系统间都是唯一的。对于超大表,建议使用 UUID v7:其按时间顺序排列的数字可以减少 B 树索引碎片,并加快批量插入速度。

了解 UUID 版本

根据您的具体使用场景选择合适的 UUID 版本

v1

UUID v1(基于时间)

根据当前时间戳和 MAC 地址生成。在空间和时间上保证唯一性。

适用于:分布式系统、数据库主键
v4

UUID v4(随机)

使用加密安全的随机数生成。最常用的版本。

适用于:通用场景、安全敏感应用
v5

UUID v5(基于名称)

使用 SHA-1 哈希算法根据命名空间和名称生成。相同输入产生一致的 UUID。

适用于:一致的 URL、基于命名空间的标识符
v7

UUID v7(时间排序)

使用毫秒精度的 Unix 时间戳生成。可按创建时间排序。

适用于:数据库索引、时序数据

UUID Format (RFC 4122)

UUID 为 128 位,写作 32 个十六进制数字,分为五组 — 8-4-4-4-12 — 以连字符分隔

550e8400
-
e29b
-
41d4
-
a716
-
446655440000

五个分段

time_low
8 hex · 时间戳的低 32 位(v1)或随机数据
time_mid
4 hex · 时间戳的中 16 位
time_hi_and_version
4 hex · 版本半字节 + 时间戳的高 12 位
clock_seq
4 hex · 变量位 + 时钟序列
node
12 hex · 48 位节点 ID(v1 中的 MAC)或随机数据

v4 冲突概率

随机 v4 UUID有 122 个随机位 - 大约 5.3 × 10³⁶ 可能的值:

生成的 UUID 冲突机会
10³~10⁻⁵⁴
10⁶~10⁻³¹
10⁹~10⁻¹⁰
2.7 × 10¹⁸50%

开发人员遇到的边缘情况

所有这些形式都出现在真实系统中 - 在验证之前了解它们

{550e8400-e29b-41d4-a716-446655440000}

某些系统(Microsoft COM、.NET) ToString("B")) 将 UUID 括在大括号中。在验证之前删除它们。

urn:uuid:550e8400-e29b-41d4-a716-446655440000

URN 表单在 RDF 和 XML 文档中有效。在解析之前去掉 urn:uuid: 前缀。

550E8400-E29B-41D4-A716-446655440000

十六进制不区分大小写。默认情况下,PostgreSQL 小写,SQL Server 大写 - 在比较之前进行标准化。

550e8400e29b41d4a716446655440000

不带连字符的32位形式在API和数据库中很常见。在8-4-4-4-12处重新插入连字符以显示。

00000000-0000-0000-0000-000000000000

Nil UUID是特殊的:全部为零,但仍有36个字符。通常意味着“没有价值” —在业务逻辑中将其视为空值。

v7: 01890d8f-5ce0-7a5b-9a4a-a4fa5f5e6a72

UUID v7嵌入了Unix毫秒时间戳—对v7列进行排序,行按创建顺序排出。

技术规格

我们的 UUID 生成器使用行业标准的算法和安全实践

安全特性

  • 符合 RFC 4122 标准生成
  • 加密安全的随机性(Web Crypto API)
  • 仅客户端生成
  • 实际唯一的碰撞抵抗性

自定义选项

  • 多种 UUID 版本(v1、v4、v5、v7、空)
  • 批量生成(最多 100 个)
  • 大写和无连字符格式
  • 即时复制和下载

参考资料与资源