首页 开发者工具 UUID 生成器

UUID 生成器

免费在线批量生成UUID v4,支持多种格式输出,本地生成保障唯一性

点击下方按钮生成

格式选项

批量生成

Ad Space

什么是 UUID 生成器?

UUID(Universally Unique Identifier,通用唯一识别码)生成器是一款在线生成符合 RFC 4122 标准的 UUID 的工具。UUID 是一个 128 位的标识符,通常表示为 32 个十六进制数字,以连字符分为 5 段(8-4-4-4-12),例如 550e8400-e29b-41d4-a716-446655440000。UUID 的最大优势是"不需要中央协调"就能保证全局唯一性——不同的机器、不同的进程同时生成的 UUID 极大概率不重复。这使 UUID 成为分布式系统中生成唯一 ID 的理想选择:数据库主键、会话标识、API 令牌、文件名等。本工具支持 UUID v1(基于时间戳)、v4(完全随机)、v5(基于命名空间哈希)等多种版本,支持批量生成和不同格式输出。

如何使用 UUID 生成器

  1. 步骤一:选择 UUID 版本 — 选择需要的版本:v4(最常用,完全随机)、v1(基于时间戳+MAC 地址)、v5(基于命名空间和名称的确定性生成)。
  2. 步骤二:设置生成参数 — 设置生成数量(1-1000个)、输出格式(标准格式、无连字符、大写、带 URN 前缀)。
  3. 步骤三:生成并复制 — 点击生成按钮,UUID 列表立即显示。一键复制全部或单个 UUID。

常见使用场景

场景一:数据库主键生成

分布式数据库(如分片数据库、多主集群)无法依赖自增 ID,UUID 是生成全局唯一主键的标准方案。使用 UUID v4 作为数据库表的 ID 字段,避免 ID 冲突。

场景二:API 请求追踪 ID

为每个 API 请求生成唯一的 Request ID(UUID v4),记录在请求头和日志中。跨服务调用时通过 Request ID 追踪完整的请求链路,方便问题排查。

场景三:文件上传唯一命名

用户上传的文件使用 UUID 重命名后存储,避免文件名冲突。结合文件扩展名(如 uuid.jpg)存储到对象存储(S3/OSS),确保文件名全局唯一。

技术原理

UUID v4 的 128 位中有 122 位是随机的(版本号和变体位固定),提供 2^122 ≈ 5.3 × 10³⁶ 种可能的组合。根据生日悖论,生成 2.7 × 10¹⁸ 个 UUID 后碰撞概率才达到 50%——这在实际应用中几乎不可能发生。JavaScript 中使用 crypto.randomUUID()(Node.js 16+/现代浏览器)直接生成 v4 UUID。

// UUID v4 生成
// 现代方法(推荐)
const uuid = crypto.randomUUID();
// "550e8400-e29b-41d4-a716-446655440000"

// 兼容方法
function uuidv4() {
  return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
    (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
  );
}

// UUID v5(确定性生成)
// 相同命名空间+名称 总是生成相同的 UUID
const nameUUID = require('uuid');
nameUUID.v5('hello', nameUUID.v5.DNS);
// 总是返回相同的 UUID

最佳实践与注意事项

常见问题

Q:UUID v4 和 v1 有什么区别?

A>v1 基于时间戳和 MAC 地址生成,有序但暴露机器信息。v4 完全随机生成,无信息泄露风险但无序。v7 是最新标准,结合时间戳(有序)和随机数(安全),是数据库主键的最佳选择。大多数场景使用 v4 即可。

Q:UUID 会重复吗?

A>理论上可能但概率极低。UUID v4 有 2^122 种可能,每秒生成 10 亿个 UUID,持续 100 年,碰撞概率仍低于 10⁻¹⁸。这比宇宙射线导致内存位翻转的概率还低。实际应用中可以安全地认为 UUID 不会重复。

Q:UUID 作为数据库主键有什么性能问题?

A>UUID v4 是随机值,插入 B-Tree 索引时会导致随机 IO(非顺序插入),在高并发写入场景性能不如自增 ID。解决方案:使用 UUID v7(时间有序)、使用雪花算法(Snowflake ID)、或将 UUID 存储在单独的 UNIQUE 列,主键仍用自增 ID。

Q:如何在 JavaScript 中生成 UUID?

A>现代环境:crypto.randomUUID()(浏览器、Node.js 16+、Deno)。兼容方案:安装 uuid 库 npm install uuid,使用 import { v4 as uuidv4 } from 'uuid'。不推荐自己用 Math.random() 实现,因为不够随机。

Q:UUID 和自增 ID 应该怎么选?

A>单机小型应用用自增 ID(简单高效)。分布式系统、需要全局唯一性的场景用 UUID v7 或雪花 ID。需要对外暴露 ID 且不暴露数量的场景用 UUID(自增 ID 暴露了业务量)。很多项目组合使用:自增 ID 做内部主键,UUID 做外部标识。

常见问题

什么是UUID?
UUID(Universally Unique Identifier)是128位的唯一标识符,标准格式为8-4-4-4-12的十六进制字符串,如 550e8400-e29b-41d4-a716-446655440000。UUID不依赖中心节点即可生成,全局唯一。
UUID v4和v1有什么区别?
UUID v4基于随机数生成,碰撞概率极低(约122位随机性);UUID v1基于时间戳和MAC地址生成,有序但可能暴露硬件信息。大多数场景推荐v4。
UUID会重复吗?
理论上可能,但实际概率极低。UUID v4的重复概率约为生成10亿个UUID后碰撞概率才0.00000000006%。可以说比被陨石砸中的概率还低。
UUID和GUID有什么区别?
GUID是微软对UUID的实现,本质上是一样的。GUID通常指Microsoft的实现(带花括号),UUID是RFC 4122标准。两者在大多数场景下可互换使用。

🔥 同类热门工具

🏷️ 相关标签

纯前端后端开发生成器身份证验证隐私安全免费在线工具开发者工具