UUID 生成器与解析器
免费 UUID 生成器,支持 v1/v4/v5/v7 全版本即时生成。解析验证任意 UUID,批量生成最多 50 个。无需注册,100% 浏览器本地运行。
什么是 UUID?
UUID(通用唯一标识符)是由 RFC 9562(前身为 RFC 4122)标准化的 128 位标识符。UUID 以 32 个十六进制数字书写,采用标准的 8-4-4-4-12 格式,例如 `550e8400-e29b-41d4-a716-446655440000`。它们被设计为全局唯一,无需中央机构或系统间的协调。
目前广泛使用的 UUID 有五个版本。版本 1(v1)编码当前时间戳和生成机器的 MAC 地址,使每个 UUID 在时间和空间上都是唯一的。版本 3(v3)和版本 5(v5)是确定性的——它们分别使用 MD5 或 SHA-1 对命名空间和名称进行哈希运算,相同输入始终产生相同的 UUID。版本 4(v4)最为常用:它用加密安全的随机数据填充 122 位,提供超过 5.3 x 10^36 种可能值。版本 7(v7)在 RFC 9562 中引入,将毫秒级 Unix 时间戳与随机数据结合,生成既唯一又可按创建时间自然排序的 UUID。
UUID 在分布式系统、数据库、API 以及任何需要无中心化协调即可获得唯一标识符的场景中都至关重要。它们消除了独立系统之间 ID 冲突的风险,使其非常适合微服务、事件溯源和多租户架构。
本工具使用 Web Crypto API 在您的浏览器中完整生成所有版本的 UUID。不会向任何服务器传输 UUID,确保完全的隐私性。您还可以解析和验证现有的 UUID,以检查其版本、变体和嵌入数据。
// Generate a UUID v4 using the Web Crypto API
const uuid = crypto.randomUUID();
console.log(uuid);
// → '550e8400-e29b-41d4-a716-446655440000'
// Manual v4 generation with crypto.getRandomValues()
function generateUUIDv4() {
const bytes = new Uint8Array(16);
crypto.getRandomValues(bytes);
bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4
bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant 10
const hex = Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
return `${hex.slice(0,8)}-${hex.slice(8,12)}-${hex.slice(12,16)}-${hex.slice(16,20)}-${hex.slice(20)}`;
} 核心功能
UUID v7 支持(RFC 9562)
生成最新的 UUID v7 格式,内嵌 Unix 时间戳,实现时间排序、数据库友好的标识符。少数支持 RFC 9562 标准的在线工具之一。
UUID 解析与验证
解析任意 UUID 以查看其版本、变体、时间戳(v1/v7)、时钟序列和节点信息。即时验证字符串是否为格式正确的 UUID。
多版本支持
支持生成五种版本的 UUID——v1(基于时间戳)、v3(MD5)、v4(随机)、v5(SHA-1)和 v7(时间排序随机)——全部符合 RFC 9562 标准。
批量生成
一次生成多达 50 个唯一的 UUID。每个 UUID 都使用完整的加密随机性或正确的版本特定编码独立生成。
多种输出格式
支持标准小写、大写、无连字符或大括号 {GUID} 格式输出 UUID——精确匹配您的系统或框架所需的格式。
加密级安全
使用 Web Crypto API(crypto.getRandomValues())生成真正的随机数——与现代浏览器和安全工具使用的标准相同。
100% 浏览器端处理
所有 UUID 均在浏览器本地生成。不向任何服务器发送数据——您生成的标识符完全私密。
UUID 版本对比
根据使用场景选择合适的 UUID 版本。
| 版本 | 生成方式 | 可排序 | 隐私性 | 适用场景 |
|---|---|---|---|---|
| v1 | 时间戳 + MAC 地址 | 按创建时间排序 | 暴露 MAC 和时间 | 需要基于时间排序的遗留系统 |
| v4 | 122 位加密随机数 | 否 | 完全匿名 | 通用场景——使用最广泛的版本 |
| v5 | SHA-1 哈希(命名空间 + 名称) | 否 | 确定性、可复现 | 从已知输入生成一致 ID(URL、DNS) |
| v7 | Unix 时间戳(毫秒)+ 随机数 | 按创建时间排序 | 仅暴露创建时间 | 现代数据库——可排序、索引友好(RFC 9562) |
UUID 与其他 ID 格式对比
ULID
26 字符,Crockford Base32与 UUID v7 类似可按字典序排序,但使用 Crockford Base32 编码(26 字符 vs 36)。UUID v7 现已是 IETF 标准化替代方案,工具支持更广泛。
nanoid
21 字符,URL 安全字符集更短且 URL 安全,适合对紧凑性有要求的场景。非正式标准——缺少 UUID 拥有的原生数据库类型和跨平台库支持。
CUID2
可变长度,字母数字为水平扩展设计,具备碰撞抗性。采用率低于 UUID,无原生数据库支持。建议使用 UUID v7 作为标准化的时间排序 ID。
UUID 版本示例
UUID v4(随机)
550e8400-e29b-41d4-a716-446655440000
最常用的版本。122 位加密随机数提供超过 5.3 x 10^36 种可能值——适用于几乎所有需要唯一性且无需协调的场景。
UUID v7(时间排序)
01906b5e-4a3e-7234-8f56-b8c12d4e5678
将 48 位毫秒级 Unix 时间戳与随机数据结合。UUID 按时间顺序排列,非常适合需要索引局部性的数据库主键。推荐在新项目中替代 v1 和 v4 使用。
UUID v1(基于时间戳)
6ba7b810-9dad-11d1-80b4-00c04fd430c8
编码 60 位时间戳和生成机器的 48 位 MAC 地址。保证时间和空间上的唯一性,但可能泄露硬件身份信息。在 RFC 9562 中已被 v6/v7 取代。
UUID v5(SHA-1 命名)
886313e1-3b8a-5372-9b90-0c9aee199e5d
通过使用 SHA-1 对 DNS 命名空间和名称 'python.org' 进行哈希生成的确定性 UUID。相同的命名空间和名称始终产生相同的 UUID,使 v5 非常适合可复现的标识符。
使用方法
- 1
选择 UUID 版本
从 v1(基于时间戳)、v3(MD5 命名)、v4(随机)、v5(SHA-1 命名)或 v7(时间排序随机)中选择。每个版本有不同用途——v4 是通用场景中最常用的版本。
- 2
配置选项
对于 v3 和 v5,选择命名空间(DNS、URL、OID、X.500 或自定义)并输入要哈希的名称。设置生成数量(1 到 50),选择输出格式:标准小写、大写、无连字符或大括号 {GUID}。
- 3
生成 UUID
点击「生成 UUID」按钮。每个 UUID 均使用 Web Crypto API(crypto.getRandomValues())创建,确保加密安全性。版本特定字段(如 v1/v7 的时间戳和 v3/v5 的哈希值)会被正确编码。
- 4
复制使用
点击任意 UUID 旁的「复制」按钮将其复制到剪贴板,或使用「复制全部」一次复制所有生成的 UUID。切换到「解析」标签页可分析现有 UUID 的版本、变体、时间戳和其他嵌入信息。
常见使用场景
- 数据库主键
- 使用 UUID v4 或 v7 作为唯一主键,无需数据库节点间的协调。UUID v7 尤其适合,因为其时间排序特性可提升 B-tree 索引性能。
- 分布式系统
- 在微服务、消息队列和事件溯源系统中独立生成唯一标识符。UUID 消除了对集中式 ID 生成服务的需求。
- API 开发
- 为 RESTful 和 GraphQL API 创建唯一的请求 ID、关联 ID 和幂等键。UUID 使跨分布式服务边界的请求追踪变得简单。
- 会话与令牌管理
- 为认证流程生成唯一的会话标识符和临时令牌。UUID 提供足够的唯一性,防止大规模用户群中的会话冲突。
- 测试与开发
- 快速生成测试数据、模拟标识符和自动化测试所需的唯一固定 ID。批量生成功能便于填充开发数据库和测试套件。
技术细节
- UUID 结构
- UUID 为 128 位(16 字节),以 32 个十六进制字符按 8-4-4-4-12 格式表示。第 48–51 位(第 13 个 hex 数字)编码版本号。第 64–65 位编码变体字段,标识 UUID 的布局方式。其余位承载版本特定的有效载荷:时间戳、随机数据或哈希输出。
- 版本位
- 第 48–51 位(第 7 个字节的高半字节)编码 UUID 版本:0001 = v1(基于时间戳)、0011 = v3(MD5 命名)、0100 = v4(随机)、0101 = v5(SHA-1 命名)、0110 = v6(重排时间)、0111 = v7(Unix 纪元时间)。这四个位在生成时始终被显式设置。
- 变体字段
- 第 64–65 位(第 9 个字节的两个最高有效位)定义变体。模式 10x 表示 RFC 4122/9562 UUID(绝大多数)。模式 110 表示微软 GUID,采用混合字节序。模式 0xx 表示 NCS 向后兼容的 UUID(遗留)。模式 111 保留供将来使用。
- RFC 9562 标准
- RFC 9562 于 2024 年 5 月发布,取代 RFC 4122 成为权威的 UUID 规范。它正式引入了 UUID 版本 6、7 和 8。版本 6 重新排列 v1 字段以实现可排序性。版本 7 使用 48 位毫秒级 Unix 时间戳加随机数据,是新的基于时间的 UUID 的推荐版本。版本 8 为自定义的、实现特定的 UUID 提供格式。RFC 9562 还正式废弃了 v1,推荐使用 v6/v7 替代。
最佳实践
- 选择合适的版本
- 通用唯一标识符且不需要排序或确定性时使用 v4。数据库主键使用 v7——其时间排序特性显著提升索引性能。需要从名称派生确定性 ID 时使用 v5(优先选择 v5 而非 v3,因为哈希更强)。
- 数据库主键使用 UUID v7
- UUID v7 的时间排序结构使 B-tree 插入保持顺序,与随机的 v4 UUID 相比减少约 90% 的索引碎片化。这意味着更快的写入、更小的索引和更好的缓存利用率。大多数现代数据库(PostgreSQL 17+、MySQL 8.0+)都有针对此模式优化的原生 UUID 支持。
- 切勿将 UUID 用作安全令牌
- UUID 为唯一性而设计,非为保密性。UUID v1 会泄露生成时间戳和 MAC 地址。UUID v4 只有 122 位熵且结构可预测。对于安全令牌、API 密钥或会话密钥,请使用专用 CSPRNG 生成 128 或 256 位的纯随机数据,无需 UUID 结构的额外开销。
- 解析前先验证
- 在解析或存储之前,始终使用正则表达式验证 UUID 格式。在系统边界——API 端点、表单提交和数据库输入——拒绝格式错误的输入。这可以防止注入攻击、数据损坏以及无效标识符在系统中传播导致的难以调试的错误。
常见问题
什么是 UUID?
不同版本的 UUID 有什么区别?
应该使用 UUID v4 还是 v7?
UUID 碰撞的概率是多少?
UUID 和 GUID 有什么区别?
UUID v4 是加密安全的吗?
如何验证 UUID 格式?
UUID 适合作为数据库主键吗?(性能、安全性与最佳版本)
什么是命名空间 UUID(v3/v5)?
什么是 UUID nil 值?
什么是 UUID v7?为什么要使用它?
如何解析一个 UUID?
UUID vs ULID vs nanoid——应该选哪个?
相关工具
查看所有工具 →在线 MD5 哈希生成器与文件校验工具
安全工具
在线生成 MD5、SHA-256、SHA-1、SHA-512 哈希值 — 完全免费,浏览器本地运算,无需注册。支持文本和文件哈希、校验和验证、哈希值对比,一键复制,数据绝不离开您的设备。
随机密码生成器 - 在线生成
安全工具
免费在线随机密码生成器,一键生成高强度安全密码。支持自定义长度、字符类型,批量生成多个密码。所有密码仅在浏览器本地生成,不上传不存储。
进制转换器 — 二进制、十六进制、十进制、八进制互转
转换工具
在线免费进制转换工具,支持二进制、八进制、十进制、十六进制及 2-36 任意进制互转。无需注册,数据不离开浏览器,即时获取结果。
Base64 解码与编码工具
编码和格式化
免费在线 Base64 解码编码工具。实时转换,支持中文和 Emoji,100% 浏览器端运行,数据不离开设备,无需注册。
在线图片压缩工具 – 免费批量压缩
转换工具
免费在线压缩 JPEG、PNG、WebP 图片,体积缩小高达 80%。浏览器本地处理、图片不上传服务器。支持批量压缩 20 张、质量调节、前后对比预览。无需注册。
JSON 格式化与验证工具
编码和格式化
在浏览器中即时格式化、验证和美化 JSON。免费在线工具,支持语法验证、错误检测、压缩和一键复制,100% 隐私保护。