UUID生成器 在线生成v4及全版本UUID
UUID生成器批量生成v1、v4、v7等各版本UUID,支持UUID验证、格式定制和版本解析,适合开发测试和数据库主键等场景。
更新于 2026-08-26
相关工具
功能特性
- 多种 UUID 版本:生成 V1(时间戳)、V3(MD5 基于名称)、V4(随机)、V5(SHA-1 基于名称)、V7(可排序)
- 多种 ID 格式:UUID、NanoID、ULID 的生成与校验
- 格式选项:大写、去连字符、花括号 {}、引号 "" 自定义 UUID 输出
- 内置校验器:粘贴 UUID/NanoID/ULID 自动识别格式、版本、变体或解码时间戳
- 批量生成:一次生成最多 1,000 个 ID,用于测试和数据库初始化
- V3/V5 命名空间:预置 DNS、URL、OID、X500 命名空间
- 一键复制:复制单个 ID 或全部结果到剪贴板
- 保存为文件:将生成的 ID 导出为 .txt 文件
- 加密安全:使用浏览器 crypto API,安全性最高
- 首次加载后支持离线使用
使用方法
- 1选择 UUID 版本标签(V1、V3、V4、V5、V7)或切换到 NanoID/ULID 模式。
- 2V3/V5:选择命名空间(DNS、URL、OID、X500)并输入名称,相同输入始终生成相同 UUID。
- 3使用格式复选框(大写、去连字符、花括号、引号)自定义 UUID 输出格式。
- 4设置数量(1–1,000),结果自动更新。
- 5点击 Copy 复制单个 ID,或使用 Copy All / Download 批量操作。
- 6使用底部校验器粘贴任意 UUID/NanoID/ULID,自动识别版本、校验格式或解码时间戳。
- 7自定义 NanoID 字母表:从 URL 安全、纯字母、十六进制、纯数字中选择,或输入自定义字符精确控制 ID 中出现的字符。
- 8使用批量导出功能一次生成最多 1,000 个 ID,全部复制或下载为 .txt 文件,用于数据库初始化、测试夹具或分布式系统开发。
常见问题
应该使用哪个 UUID 版本?
V4(随机)是大多数场景的标准选择。V7(可排序)适合数据库主键,插入顺序友好。V1(时间戳)适合需要从 ID 中提取创建时间的场景。V3/V5 适合需要从命名空间+名称生成确定性 UUID 的场景。
V3 和 V5 有什么区别?
两者都从命名空间和名称生成确定性 UUID。V3 使用 MD5 哈希,V5 使用 SHA-1 哈希。V5 更受推荐,因为 SHA-1 提供更好的唯一性保证。相同的命名空间+名称在相同版本下始终生成相同的 UUID。
什么是 UUID V7,为什么数据库推荐使用?
UUID V7 嵌入毫秒级 Unix 时间戳,使值按创建时间自然排序。这改善了 B 树索引性能(减少页面分裂)、更好的缓存利用率,以及更快的范围查询。适合高并发应用的数据库主键。
什么是 NanoID?
NanoID 是 UUID 的紧凑替代品:21 字符 vs 36 字符,URL 安全(A-Z、a-z、0-9、_、-),生成更快。适合短 URL、紧凑数据库键和需要可读性与小体积的场景。
什么是 ULID?
ULID(通用唯一字典序可排序标识符)是 26 字符标识符,结合时间戳和随机性。与 UUID 不同,ULID 作为字符串可按时间排序,非常适合数据库索引和分布式系统。
UUID 解码器有什么用?
粘贴任意 UUID 即可查看其版本号、变体类型(RFC 4122、Microsoft 等)、嵌入的时间戳(V1 和 V7)和原始十六进制值。支持带或不带连字符、花括号和引号的 UUID。
这些 ID 真的唯一吗?
实际使用中是的。UUID V4 有 2^122 种可能组合。碰撞概率极低:需要生成 2.7 万亿亿个 UUID 才有 50% 的碰撞概率。V3/V5 是确定性的(相同输入=相同输出),V1/V7 结合时间和随机性。
UUID v4 是加密安全的吗?
是,v4 和 v7 UUID 在浏览器中使用 Web Crypto API(crypto.getRandomValues)生成,与浏览器用于 TLS 的加密安全随机数发生器是同一个。V3/V5 是确定性的(命名空间+名称的 MD5/SHA-1 哈希),V1 内嵌当前时间;只有 v4/v7 依赖随机数。同样拥有 2^122 的值空间,碰撞概率低到可以忽略。
这个工具能用于数据库主键吗?
可以。UUID V4 和 V7 是数据库主键的绝佳选择。V7 特别推荐用于 MySQL 和 PostgreSQL,因为其时间排序特性可以改善 B 树索引性能、减少页面分裂。NanoID 是小型数据库中键长度和可读性更好的替代方案。
NanoID 支持哪些自定义字母表?
NanoID 支持多种字母表:URL 安全(A-Z、a-z、0-9、_、-)通用兼容、纯字母生成人类可读代码、十六进制紧凑格式、纯数字用于数字编码,或完全自定义字母表。URL 安全是大多数场景的推荐选择。
为什么我的 V1 UUID 包含 MAC 地址?
UUID 版本 1 由时间戳加上生成机器的节点标识构成,对大多数计算机来说,这个节点 ID 就是网卡的 MAC 地址,因此 UUID 可能泄露生成它的硬件。这是 v1 规范的设计,不是 bug。如果在意隐私,改用 v4(随机)或 v7(时间有序随机):两者都不包含任何硬件标识。
为什么不同的 UUID 生成器在线生成的结果不一样?
因为 UUID 不是由你的输入推导出来的:v4 是纯随机,v1/v7 内嵌当前时间,所以每次运行、每个生成器都会给出不同的值。没有「标准输出」可对照,也不需要对照:目标是唯一性。唯一确定性的版本是 v3/v5,它们对命名空间+名称做哈希,同一对输入在任何工具里都会得到同一个 ID。
为什么生成的 UUID v4 被 MySQL 或数据库列拒绝?
常见原因:列是 CHAR(36) 而粘贴的值丢了连字符(或反过来)、存成了大写而应用按小写比较、复制粘贴混入了尾随换行或 BOM、或者列太小(无连字符的 UUID 需要 CHAR(32))。v4 完全适合作主键:生成时保留连字符,用 CHAR(36) 或 BINARY(16) 存储,插入前校验完整字符串。