UUID 生成器支持批量生成 v1、v3、v4、v5、v6、v7 以及 NIL 和 MAX 等全部版本的 UUID,每次最多生成 100 个;同时提供检查器,可验证任意 UUID 字符串的格式有效性、版本和变体。
UUID v1/v4/v5/v7 的区别与选择
v4(随机)
- 完全随机,不含时间或硬件信息
- 最常用版本,适合大多数场景
- 缺点:数据库按主键插入时,随机值导致 B-tree 索引碎片化,写入性能下降
v7(推荐用于数据库主键)
- 前 48 位为毫秒级 Unix 时间戳,天然按时间排序
- 适合替代数据库自增 ID,插入效率高
- 不含 MAC 地址,兼顾时序性和隐私
v5(基于名称,哈希)
- 相同命名空间 + 相同名称 → 永远生成相同 UUID
- 使用 SHA-1 哈希,适合需要幂等性的场景
- 示例:从域名
example.com始终生成固定 UUID
v1(基于时间 + MAC)
- 包含 MAC 地址,可能泄露设备信息
- 生成的 UUID 按时间有序,但时间字段位置在中间,排序效率不如 v7
- 新项目不推荐,v6/v7 是其改进替代版
v3 与 v5 的选择
v3 使用 MD5,v5 使用 SHA-1,两者都是基于命名空间和名称生成确定性 UUID。新项目应选 v5;只有对接只支持 v3 的遗留系统时才需要 v3。
命名空间与名称的用法
生成 v3 或 v5 时必须填写命名空间和名称。工具默认命名空间为 DNS 命名空间 6ba7b810-9dad-11d1-80b4-00c04fd430c8,可以自定义为任意有效 UUID。相同命名空间下不同名称产生不同 UUID,不同命名空间下相同名称也产生不同 UUID,命名空间起到隔离作用。
检查器的验证结果
将任意 UUID 粘贴到检查器,会显示规范化格式(统一小写)、版本号(v1–v7 或未知)、变体(RFC 4122、NCS、Microsoft)以及是否为 NIL(全零)或 MAX(全 F)特殊值。检查器对格式不符合标准的字符串会直接标记"无效",不会猜测接近的版本。