utilduck
Home · 开发者 · UUID 生成器

UUID 生成器

在浏览器中即时生成随机 UUID v4 标识符。

列表
-

什么是 UUID?

UUID(通用唯一标识符)是一个 128 位标签,格式为用连字符分隔成五组的 32 个十六进制数字,例如 550e8400-e29b-41d4-a716-446655440000。v4 UUID 是随机生成的,两个相同值被生成的概率极低。

UUID 在无法由中央机构分配 ID 的分布式系统中被广泛用作数据库主键、会话令牌和唯一标识符。本工具使用浏览器内置的 crypto.randomUUID(),具有密码学安全性。

怎么生成 UUID v4?

生成 UUID v4 时,用密码学随机值填满 128 位,再固定其中 6 个特定位来标记版本和变体,使整个值仍符合标准 UUID 格式。示例格式:550e8400-e29b-41d4-a716-446655440000,第二个连字符后紧跟的 "4" 始终标记版本 4。

生成 UUID v4 的步骤

  1. 用密码学安全的随机数生成器生成 128 个随机位(16 字节)。
  2. 把第 7 个字节的最高 4 位设为二进制 0100,标记这是版本 4——这就是第三组第一个字符始终是 "4" 的原因。
  3. 把第 9 个字节的最高 2 位设为二进制 10,标记标准变体——这使第四组第一个字符始终是 8、9、a 或 b。
  4. 把剩余的位格式化为 32 位十六进制数字。
  5. 插入连字符,把这些数字分成 8-4-4-4-12 位的分组,形成最终的 UUID 字符串。

UUID v4 结构

xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,其中 x 是任意随机十六进制数字,y 是 8、9、a 或 b 之一
  • 总长度 = 36 个字符,包含 4 个连字符(32 位十六进制数字 + 4 个连字符)
  • 版本位 = 始终为 "4"(标记版本 4,即随机生成)
  • 变体位 = 始终为 8、9、a 或 b 之一(标记 RFC 标准变体)

UUID v4 格式示例(仅作说明——每次生成都是随机的)

分组长度示例片段
time_low8 位十六进制数字550e8400
time_mid4 位十六进制数字e29b
version + time_hi4 位十六进制数字(以 4 开头)41d4
variant + clock_seq4 位十六进制数字(以 8-b 开头)a716
node12 位十六进制数字446655440000

常见问题

两个 UUID v4 值发生碰撞的概率有多低?

UUID v4 有 122 个随机位(总共 128 位减去 6 个固定的版本/变体位),可能取值约为 5.3 × 10^36 种。即使每秒生成十亿个 UUID,连续生成十亿年,发生任何碰撞的概率仍然微乎其微,这也是 UUID 无需中央协调就能被视为事实上唯一的原因。

为什么每个 UUID v4 的同一位置都有一个 4?

这个字符不是随机的——标准把它固定下来,用来标记该 UUID 是版本 4(随机生成),这样读取该 ID 的软件即使没有其他元数据,也能识别出是哪个版本和生成算法产生的。

UUID 和 GUID 是一回事吗?

GUID(全局唯一标识符)是微软对同一种 128 位标识符格式的叫法,该格式已被标准化为 UUID。这两个术语描述的是同一套底层结构,在实践中通常可以互换使用,只是部分微软的老旧工具在格式细节上略有不同。

UUID 适合用作数据库主键吗?

当 ID 需要在多台服务器上独立生成、且不希望依赖单一自增计数器造成瓶颈时,UUID v4 表现很好。代价是随机 UUID 比整数占用更多空间,并且和顺序 ID 不同,在高并发写入场景下可能会影响某些数据库引擎的索引局部性。

本工具使用浏览器内置的 crypto.randomUUID() 生成版本 4(随机)UUID,该方法具备密码学安全性;它不生成其他版本的 UUID,例如基于时间戳的 v1 或基于名称哈希的 v5。

Sources: RFC 9562 - Universally Unique IDentifiers (UUIDs)

隐私与安全

  • 在浏览器中计算 — 您输入的内容仅在本机设备上计算,不会发送到 utilduck 服务器。
  • 加密连接 — 所有页面均通过 HTTPS 提供,传输过程中无法被读取。
  • 不提供给第三方 — 您输入的内容不会传递给分析或广告服务。
  • 不保存 — 计算结果不会保存到任何服务器,也无需注册账号。

最后更新: 2026-08-17