免费转换器

UUID / GUID 生成器

在浏览器中即时生成 UUID v4 (GUID) 值。免费、私密、纯客户端 — 数据不会发送到任何服务器。

关于此工具

UUID(通用唯一标识符,在 Microsoft 环境中也称为 GUID)是 128 位标识符,可以跨系统独立生成,冲突概率可以忽略不计。标准形式为 32 个十六进制字符,分为 8-4-4-4-12 组,用连字符分隔 (550e8400-e29b-41d4-a716-446655440000)。存在多个版本,不同的生成策略; v4 (random) is the most common.

v4 UUID 从 122 位随机性中获得其唯一性(版本和变体的 6 位是固定的)。冲突概率非常小,以至于出于实际目的,UUID 可以被视为全局唯一而无需协调 - 独立生成 UUID 的两个系统在任何实际时间范围内都不会产生重复项。

该生成器以标准十六进制连字符格式生成 v4 UUID。随机性来自浏览器的加密安全随机数生成器 (window.crypto.getRandomValues),适用于安全敏感的目的。支持批量生成以填充测试装置或种子数据库。

为什么生成 UUID

UUID 允许分布式系统生成标识符,而无需与中央数据库协调。每个服务都可以在本地生成 ID,而无需往返计数器,并且保证生成的 ID 不会与其他地方生成的 ID 发生冲突。这使得 ID 生成不再是瓶颈的横向扩展架构成为可能。

UUID 还使 ID 变得不可猜测。连续数字 ID 泄露信息——用户总数、帐户年龄、注册速度。 UUID 没有透露任何信息。向用户公开 ID 的 API 可以从 UUID 中受益,这既可以提高安全性,也可以提高与分片后端的前向兼容性。

使用方法

点击generate,得到一个v4 UUID。

  1. 选择计数: 一次生成一个 UUID,或批量生成多达数千个 UUID 以填充测试数据。
  2. 选择格式: 带连字符的标准格式 (550e8400-e29b-41d4-a716-446655440000) 是默认格式。还提供紧凑(无连字符)、大写和大括号括起来的 {550e8400-...} 变体。
  3. 生成: 浏览器的 crypto.randomUUID() (或使用 crypto.getRandomValues 的 v4 回退)会生成新的 UUID。每一代都是独立且不确定的。
  4. 复制或下载: 将单个 UUID 复制到剪贴板或以文本或 CSV 形式下载批量列表。

常见用例

技术细节

UUID 为 128 位,显示为 32 个十六进制数字,分为五组,用连字符分隔。分组 (8-4-4-4-12) 纯粹是装饰性的;该值是一个 128 位整数。 v4 UUID 对 122 位随机性进行编码,其余 6 位固定:版本字段(4 位,值 4)标识变体。

浏览器支持:crypto.randomUUID() 可在现代浏览器(Chrome 92+、Firefox 95+、Safari 15.4+)中使用,并直接生成 v4 UUID。较旧的浏览器会退回到手动组合来自 crypto.getRandomValues 的 16 个随机字节以及正确设置的版本/变体位。

冲突概率:对于 2^122 个可能的随机 UUID,生成两个相同值的机会可以忽略不计。即使生成 10^9 个 UUID,单次碰撞的概率也约为 10^-18,比随机选择地球上的一个原子的概率低约 10 万亿倍。

最佳实践

常见问题

什么是UUID?
UUID(通用唯一标识符)是一个 128 位标签,用于唯一标识信息,无需各方之间协调。 v4 UUID 如下所示:550e8400-e29b-41d4-a716-446655440000。它几乎可以保证在全球所有系统中都是唯一的。
两个 UUID 会相同吗?
理论上可行,但实际上不可能。 UUID v4 有 2^122 个可能值 (5.3 × 10^36)。您需要在 100 年内每秒生成 10 亿个 UUID,才有 50% 的机会发生单次碰撞。
什么时候应该使用 UUID 和自动递增 ID?
UUID 更适合分布式系统、离线优先应用程序以及当您不希望 ID 泄露信息(例如用户计数)时。自动增量对于数据库索引来说更简单、更紧凑、更快。
这些 UUID 加密安全吗?
该工具使用 crypto.getRandomValues() 提供加密安全随机数。 UUID v4 适用于会话令牌和标识符,但对于高安全性应用程序,请考虑专用令牌生成器。
UUID v5 或 v7 怎么样?
v5 从命名空间内的名称确定性地派生出 UUID(对于内容可寻址 ID 很有用)。 v7(较新,2022 年)为字典时间排序添加了毫秒时间戳前缀。该生成器专注于 v4;如果需要,可以添加特定版本。
UUID 区分大小写吗?
根据规范,否 - 大写和小写十六进制是等效的。大多数生成器默认生成小写字母。比较应该不区分大小写。
生成是在我的浏览器中完成的吗?
是的。 UUID 是使用浏览器加密 API 在客户端生成的。
我可以按创建时间对 UUID 进行排序吗?
不适用于 v4 — 随机结构没有时间顺序。对于可按时间排序的 UUID,请使用 v7(如果您接受隐私影响,则使用更早的 v1)。