UUID 生成器
生成符合 RFC 4122 标准的 UUID(通用唯一标识符),支持多种版本。加密安全,即时生成,支持批量操作。
生成 UUID
选择 UUID 版本并自定义选项
生成的 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 版本
UUID v1(基于时间)
根据当前时间戳和 MAC 地址生成。在空间和时间上保证唯一性。
UUID v4(随机)
使用加密安全的随机数生成。最常用的版本。
UUID v5(基于名称)
使用 SHA-1 哈希算法根据命名空间和名称生成。相同输入产生一致的 UUID。
UUID v7(时间排序)
使用毫秒精度的 Unix 时间戳生成。可按创建时间排序。
UUID Format (RFC 4122)
UUID 为 128 位,写作 32 个十六进制数字,分为五组 — 8-4-4-4-12 — 以连字符分隔
五个分段
- 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 个)
- 大写和无连字符格式
- 即时复制和下载
参考资料与资源
-
RFC 9562 - UUIDs and ULIDs (IETF)
定义 UUID 版本、格式与生成算法的 IETF 标准。
-
Universally Unique Identifier - Wikipedia
关于通用唯一标识符及其各类变体的综合参考。