UUID生成器|批量生成v4,支持无连字符/大写格式

在浏览器中批量生成任意数量的UUID v4(随机)标识符。一键切换标准、大写、无连字符、大括号、URN等格式,方便直接复制使用。免费无需注册。

UUID版本一览

版本 生成方式 说明
UUID v1 时间戳 + MAC地址 基于生成时间和网卡MAC地址生成。由于可能暴露生成设备信息而存在隐私隐患,目前新系统很少采用。
UUID v3 命名空间 + MD5哈希 对命名空间和名称字符串进行MD5哈希后生成。具有确定性——相同输入始终得到相同UUID。由于MD5存在碰撞弱点,新用途推荐使用v5。
UUID v4 完全随机 基于密码学安全的随机数生成。不包含来源信息,隐私性好且实现简单,是目前使用最广泛的版本。本工具生成的即为此格式。
UUID v5 命名空间 + SHA-1哈希 与v3同样采用命名空间方式,但使用SHA-1。适用于需要确定性生成(相同数据始终得到相同ID)的场景。
UUID v6 重排时间戳 + 随机数 2024年由RFC 9562标准化。重新排列了v1的时间戳字段,使字节序的字典顺序与时间顺序一致,从而提升数据库索引效率。
UUID v7 Unix时间戳 + 随机数 2024年由RFC 9562标准化。开头为毫秒精度的Unix时间戳,因此可按生成顺序排序。在新项目中作为v4的替代方案正被越来越多地采用。

什么是 UUID 生成

UUID(Universally Unique Identifier)是用于数据库主键、API 请求 ID 等场合,以在全球范围内不重复为目的的128位标识符。其特点在于无需由中央服务器管理连号,各终端与服务器只要各自独立发行即可,在实用上不会发生冲突。

本工具使用 Web Crypto API 在浏览器内生成 UUID v4(完全随机)。生成处理不会发送至服务器,可按指定件数一次性生成,并可一键转换为标准格式、无连字符、大写、带花括号、URN 形式后复制。

UUID 生成的使用方法

  1. 指定生成件数 输入所需的个数。若要为测试数据或种子数据一次性生成,可指定较多的件数。
  2. 选择显示格式 除标准(小写、连字符分隔)之外,还可从无连字符、大写、带花括号、URN 形式中选择契合用途的格式。
  3. 生成并复制 按下“生成”后结果会以列表显示。可用“全部复制”或各行的“复制”按钮粘贴到剪贴板。

用好本工具的小技巧

  • 生成的UUID完全在浏览器内通过Web Crypto API处理,不会发送到toolbase.cc的服务器。
  • 当需要唯一性但不想使用连续、可猜测的ID时(如数据库主键、API请求ID等),UUID v4是广泛使用的选择。
  • UUID v4的128位中有122位是随机的,因此发生碰撞的概率极低(即使生成10亿个,碰撞概率达到约50%也需要约2.7×10¹⁸个)。
  • "无连字符"格式便于用作URL路径段或文件名。"带大括号"格式与Windows COM/注册表中使用的GUID表示法相同。
  • 增加生成数量后使用"复制全部",可以方便地批量创建测试数据或种子数据。

UUID 生成派上用场的场景

数据库主键设计

对于不希望使用连号、不希望被推测出生成来源的表,可将无需担心重复的 UUID v4 用作主键。

API 的请求 ID、追踪 ID

为便于日志排查与调试而为每个请求赋予唯一 ID 时,可一次性生成所需的件数。

测试用数据、种子数据的制作

向开发环境注入初始数据时,可按件数一次性生成不重复的 ID 序列,直接复制使用。

文件名、临时令牌的生成

可将“无连字符”形式的 UUID 用作上传文件的临时名称,或用作不易被推测的临时令牌。

术语集

UUID v4
由密码学伪随机数生成、不含生成来源信息的 UUID。实现简单且在隐私方面安全,因此使用最为广泛。
GUID
微软在自家实现中使用的 UUID 别名。指与 UUID 兼容的128位标识符,多以带花括号的形式表记。
Web Crypto API
浏览器标准内置的加密相关 JavaScript API 群。本工具使用该 API 仅在浏览器内生成 UUID v4,不会发送至服务器。
URN 形式
加上 urn:uuid: 前缀的 UUID 表记形式。在 XML、RDF 等要求 URN(统一资源名称)的规范中,将 UUID 作为标识符嵌入时使用。
UUID v7
2024年由 RFC 9562 标准化、开头带有 Unix 时间戳的 UUID。因可按生成顺序排序,在要求数据库插入效率的新开发中,作为 v4 的替代方案正逐渐普及。

常见问题

理论上并非绝对不可能,但由于UUID v4拥有122位随机性,实际使用中这种概率可以忽略不计。即使每秒生成10亿个UUID并持续100年,发生一次碰撞的概率也仅约为50%。

是的,基本上是同一个概念。GUID(全局唯一标识符)是微软对自身实现的称呼,与UUID的128位格式兼容。带大括号的格式{xxxxxxxx-xxxx-...}是Windows COM/注册表中常见的GUID写法。

由于UUID v4是随机的,相比连续整数(AUTO_INCREMENT),索引体积往往更大,插入性能可能下降。如果需要按插入顺序排序,可以考虑包含时间信息的UUID v7,或采用ULID作为替代方案。

如果只需要唯一性,UUID v4最简单且安全。如果需要相同输入始终得到相同ID,可选v5;如果新项目重视生成顺序或数据库插入效率,v7是有力选择。v1、v3目前已很少被新项目采用。
工具君

闲话 ― 为什么要用128位

UUID(通用唯一标识符)由Apollo Computer公司在1980年代为分布式系统而设计,后来由OSF(开放软件基金会)作为DCE(分布式计算环境)的一部分进行标准化。目前的规范见于IETF RFC 4122(2005年),2024年又发布了扩展版RFC 9562。

128位看似过多,但这个长度是为了保证多台服务器、设备完全不互相通信、各自独立发行ID时,在实际使用中也不会发生碰撞。若采用中央ID发行服务器统一管理连号,该服务器会成为单点故障,且每次发行都需要一次通信开销。UUID用足够长的随机性把碰撞概率降到可忽略的水平,从而彻底消除了这种协调成本。

但UUID v4正因为是随机的,插入数据库的B-Tree类索引时会导致插入位置分散,频繁引发页分裂,从而影响性能。为解决这个问题而设计出的可按时间顺序排序的UUID v7,通过在开头携带Unix时间戳,在保持随机性的同时确保了插入局部性。