tigtools

UUID 生成器

在浏览器中批量生成通用唯一标识符,并按需选择格式。将已有 UUID 粘贴到下方,即可检查其版本和变体。

在浏览器中运行 无需注册

版本

使用浏览器的加密安全随机数生成器生成 122 位随机数,是最适合一般用途的选择。

    检查 UUID

    使用方法

    1. 随机 ID 请选择 v4;需要按创建时间排序的 ID 请选择 v7。
    2. 设置生成数量(1 到 1,000),并选择格式:大写、带或不带连字符、带或不带花括号。
    3. 点击对应按钮复制单个 UUID,复制全部 UUID,或将它们下载为文本文件(每行一个 UUID)。
    4. 如需检查已有 UUID,请将其粘贴到“检查 UUID”中。

    工作原理

    UUID(也称为 GUID)是一种 128 位标识符,通常写作 32 个十六进制数字,分为五组:8-4-4-4-12。第三组的首位数字表示版本,第四组的首位数字表示变体(标准 UUID 的取值为 8、9、a 或 b)。该格式由 RFC 9562 定义;RFC 9562 于 2024 年取代了 RFC 4122。

    版本 4 UUID 是随机生成的。本工具优先使用 crypto.randomUUID;如果不可用,则使用 crypto.getRandomValues。这两种方式都能提供加密安全的随机数;本工具绝不会使用 Math.random。v4 UUID 有 122 个随机位,两个 UUID 撞号的概率可以忽略不计:生成约 2.7 × 10^18 个 UUID,才有 50% 的概率出现一次重复。

    版本 7 UUID 以 48 位 Unix 毫秒时间戳开头,后接版本号、一个 12 位字段和 62 个随机位。时间戳位于开头,因此 v7 值会按创建时间排序,有助于保持数据库索引紧凑,并比随机 v4 键更快地插入数据。同一毫秒内创建多个 v7 UUID 时,本工具会将 12 位字段用作计数器(RFC 9562 第 6.2 节所述的方法),因此一批 UUID 始终严格递增。请注意,v7 UUID 会暴露其创建时间。

    检查器支持带或不带连字符、大写或小写、带花括号,或带 urn:uuid: 前缀的 UUID。它会报告版本和变体、识别特殊的 nil 和 max UUID,并显示版本 1、6 和 7 中嵌入的创建时间。

    示例

    新建数据表的主键

    生成 100 个 v7 UUID,用作测试数据,例如 0192b3c4-5d6e-7f80-9a1b-2c3d4e5f6a7b。它们按创建时间排序,因此后插入的行会获得更大的键,类似自增列。

    Windows 或 .NET 项目的 GUID

    开启“大写”和“花括号”,即可生成注册表风格的格式 {3F2504E0-4F89-41D3-9A0C-0305E82C3301},这种格式用于 Visual Studio 项目文件、COM 类 ID 和 Windows 注册表。

    检查日志中的 ID

    将 018f6e2c-1a2b-7c3d-8e4f-5a6b7c8d9e0f 粘贴到检查器中。检查器会报告版本 7 和标准变体,并将开头的 12 位解码为 2024 年 5 月的时间戳,告诉你记录的创建时间。

    常见问题

    应该使用 UUID v4 还是 v7?

    如果 ID 不应泄露任何信息(例如公开令牌或文件名),请使用 v4。如果是数据库键和事件 ID,且按时间排序有助于提升索引性能,请使用 v7。两者都有足够多的随机位,实际应用中无需担心撞号。

    这些 UUID 真的唯一吗?

    这些 UUID 不会与任何列表进行比对,但它们由加密安全的随机数生成器生成,因此重复的可能性极低,在实际系统中可以忽略不计。v7 值还包含当前时间。

    UUID 和 GUID 是同一种东西吗?

    是。GUID(全局唯一标识符)是 Microsoft 对同一种 128 位格式的称呼。GUID 通常以大写字母和花括号显示,你可以在此启用这两种格式。

    可以将 UUID 用作密码或秘密令牌吗?

    v4 UUID 有 122 个随机位,很难猜中;但 UUID 是标识符,不是秘密,而且经常会出现在日志和 URL 中。对于 API 密钥或密码重置链接,请使用专门的随机令牌生成器。

    v7 时间戳使用的是我电脑的时钟吗?

    可以。时间戳取自设备时钟,以 UTC 毫秒为单位。如果时钟不准,嵌入的时间也会不准,但同一批生成的 ID 仍会按递增顺序排列。

    隐私

    UUID 由浏览器使用设备的加密安全随机数生成器生成。它们不会发送到服务器、不会存储,也不会记录,因此其他人无法看到你生成或检查的值。