UUID 生成器

下一步

UUID可为您提供全球唯一的标识符,且无需与中央机构协调。该生成器可生成符合RFC 4122标准的v1(时间戳+MAC地址)、v4(随机值)及v7(带时间戳前缀、可排序)版本标识符。您可选择任意版本,请求生成1个或1000个,并将生成结果复制至种子数据、API密钥生成模块或单元测试中。

如何生成 UUID

  1. 1

    选择版本

    v4适用于通用随机排序;v7适用于需要确定排序顺序的情况;v1则用于需要时间戳信息的场景。

  2. 2

    选择数量

    单次运行可生成 1 个 UUID,或最多 10,000 个。

  3. 3

    生成

    数值生成采用浏览器的加密API实现随机数生成。

  4. 4

    复制或下载

    以换行列表、JSON 数组或 CSV 格式获取。

您应该使用哪个版本的 UUID?

版本 结构 最适合的场景
v1 时间戳 + 时钟 + MAC 地址 需要按时间顺序排列的日志 ID
v4 122 位随机数 通用唯一标识符、测试夹具
v7 Unix 时间戳(毫秒)+ 随机值(可排序) 数据库主键

为何 v7 成为默认版本

v4版本的键值随机生成,作为数据库主键性能极差:插入操作会分散分布在整个B树中,严重影响写入吞吐量。v7版本(于2024年通过RFC 9562正式发布)在 UUID 前添加了48位毫秒时间戳,因此新记录会被存储在索引末尾。该设计仍具备唯一性且无需协调机制,并能根据创建时间提供大致排序顺序。

格式规则

UUID 为128位,以8-4-4-4-12格式呈现为32个十六进制数字:

018f5b9c-7d4a-7a1b-8c0e-2e1b3c4d5e6f
         ^^                ^
         版本半字节        变体位
  • 版本半字节是第 13 个字符(位于 018f5b9c-7d4a- 之后):v4 对应 4,v7 对应 7,依此类推。
  • 变体位是第 17 个字符的前两位。对于 RFC 4122 UUID,其值为 10(高位半字节为 8/9/a/b)。

碰撞概率

对于v4版本,生成重复UUID的概率微乎其微:需要生成2.7万亿(2.7×10¹⁸)个UUID才能达到50%的碰撞概率,这一数量远超大多数数据库实际会遇到的数量。v7版本与之共享随机数分布尾部,因此在相同毫秒内碰撞概率完全一致。

常见问题

从历史上看答案是肯定的,因为这些生成器会嵌入生成主机的MAC地址。现代生成器(包括本款)则采用随机的48位节点ID作为替代,因此v1版本不再暴露硬件信息。

当使用 CSPRNG 生成(该工具通过crypto.getRandomValues接口实现)时,v4版本的生成结果具有足够的不可预测性,可作为会话令牌使用。但UUID本身并非秘密,若需保密信息,只需明确标注其性质即可。

可以,它们对 URL 是安全的(仅含十六进制和连字符)。若需缩短显示长度,可对原始 128 位数据采用 base-32 或 base-62 编码,或使用 ULID,它由 26 个字符组成,且具备与 v7 相同的可排序特性。

数据生成过程完全在您的浏览器中完成,相关数值从未传输至服务器。

相关工具

此工具还提供其他语言版本