UUID / GUID生成器
即时批量生成无碰撞的RFC 4122版本4 UUID,带导出选项。
随机 UUID / GUID 生成器:RFC 4122 版本 4 在线生成工具与开发者参考
在现代软件工程、云计算、分布式微服务、RESTful API 以及关系型/NoSQL 数据库中,在没有中心同步机制的情况下分配抗碰撞的唯一键至关重要。我们的随机 UUID / GUID 生成器基于硬件级密码学安全的伪随机数生成器(通过 crypto.randomUUID() 和 crypto.getRandomValues() 实现 CSPRNG),生成标准的 128 位RFC 4122 版本 4 UUID。
按需生成单个 UUID,或批量导出最多 100+ 个唯一标识符。可选小写、大写(Windows GUID 风格)、标准 8-4-4-4-12 连字符格式、不带连字符的紧凑 32 位连续十六进制、花括号包裹({...})以及便于直接插入数组的引号字符串。按下Spacebar即时生成,零服务器遥测。
CSPRNG 硬件熵
直接调用 Web Crypto API 获得 122 位真实熵,确保数学上的抗碰撞性。
批量生成
一次生成 1 到 100+ 个 UUID,用于数据库种子脚本、SQL 模拟迁移和测试夹具。
多格式输出
切换标准 8-4-4-4-12 连字符、大小写、Windows GUID 花括号 {GUID} 或干净的连续十六进制。
100% 客户端隐私
零网络请求、零遥测、零日志记录。你生成的标识符严格保留在浏览器内部。
🔬RFC 4122 版本 4 UUID 字符串的结构剖析
规范的 UUID 表示为 32 个十六进制数字,分为 5 组并由连字符分隔(含连字符共 36 个字符):
32 位随机熵(v1 中的 time_low 字段)
16 位随机熵(time_mid 字段)
以 4 开头(UUID 版本 4)+ 12 位随机位
以 8、9、a 或 b 开头(RFC 4122 变体)+ 14 位随机位
48 位随机熵(node 节点标识字段)
📑UUID 版本对比与架构规范
| 版本 | 生成机制 | 主要用途 | 安全与隐私特性 |
|---|---|---|---|
| UUID v4(随机) | 122 位随机位 + 6 位版本/变体位 | 数据库主键、API 令牌、会话 ID 的默认选择 | 零数据泄露,最大熵 |
| UUID v1(时间戳) | 60 位时间戳 + MAC 网络地址 | 按时间排序的传统分布式节点 | 会泄露 MAC 地址和精确的创建时间戳 |
| UUID v5(命名 SHA-1) | 命名空间 UUID + 字符串哈希(SHA-1) | 基于 URL / 名称的确定性 ID 生成 | 确定性(相同输入始终产生相同 UUID) |
| UUID v7(按时间排序) | Unix 毫秒时间戳 + 随机位 | B-tree 数据库索引(PostgreSQL、MySQL) | 高局部性,按时间顺序索引排序 |
💻如何在现代编程语言中生成 UUID v4
const id = crypto.randomUUID();import uuid; id = str(uuid.uuid4())Guid id = Guid.NewGuid();import "github.com/google/uuid"; id := uuid.New().String()SELECT gen_random_uuid();use uuid::Uuid; let id = Uuid::new_v4();❓常见问题
UUID v4 发生碰撞的确切数学概率是多少?▾
凭借 122 位纯密码学熵,UUID v4 共有 2^122(约 5.3 × 10^36,即 5.3 十万亿亿)种可能组合。要达到 50% 的重复碰撞概率,你需要生成约 2.71 quintillion(2.71 × 10^18)个 UUID。即使以每秒 10 亿个的速度连续生成 85 年,碰撞几率也低于十亿分之一。
UUID 和 Microsoft GUID 有什么区别?▾
UUID(通用唯一标识符)和 GUID(全局唯一标识符)指的是完全相同的 128 位 RFC 4122 / ITU-T 标准。“GUID”一词最初由 Microsoft 在 COM/ActiveX 中提出,且通常以大写加花括号的形式书写(例如 {D3B07384-D113-40B3-8C7C-482A688B1B36}),而 Unix 和开源生态系统则更倾向于小写的“UUID”。
8-4-4-4-12 结构中的 4 和变体位代表什么?▾
在任何有效的 UUID 字符串 xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 中,M 位置(第 13 个十六进制字符)表示 UUID 版本(对于 v4,它始终是 4);N 位置(第 17 个十六进制字符)编码 RFC 4122 变体位(二进制为 10xx,对应的十六进制字符为 8、9、a 或 b)。
可以把 UUID v4 用作 PostgreSQL、MySQL 和 SQLite 的数据库主键吗?▾
可以!UUID v4 被广泛用作主键,因为它允许客户端或分布式节点独立生成 ID,而不会在集中式自增计数器上产生锁争用。在高写入负载且担心 B-Tree 索引碎片化的场景下,现代应用还会将 UUID v4 与 UUID v7 搭配使用,以实现按时间的顺序聚簇。
什么是 Nil UUID,什么时候会用到它?▾
Nil(空)UUID 是一种保留的特殊 128 位标识符,其所有位均为 0(00000000-0000-0000-0000-000000000000)。在软件 API 和数据库外键中,它通常被用作占位符,表示未赋值、空缺或默认的实体引用。
生成的 UUID 可以安全地用在公开 URL 中吗?▾
可以。由于 UUID v4 不包含任何个人身份信息(不同于会泄露 MAC 地址和时间戳的 UUID v1),也无法像整数 ID 那样被顺序枚举(例如 /user/101 → /user/102),它能保护 Web 应用免受不安全的直接对象引用(IDOR)爬取攻击。
这个生成器的空格键快捷方式是怎么工作的?▾
按下空格键会立即生成一个新的 UUID 或一批 UUID。你可以点击主 UUID 显示框或复制按钮,将值直接传送到操作系统剪贴板。
这款在线 UUID 生成器完全私密且安全吗?▾
是的,百分之百。所有 UUID 生成过程都通过 Web Cryptography API 在你的本地浏览器中完全于客户端运行。不会有任何数据通过互联网传输,也不会保存到服务器日志中,完全满足企业和安全敏感工作流程的合规要求。