← 返回工具箱
🆔 UUID生成器

UUID V4 生成器

📖 UUID 通用唯一标识符

UUID(Universally Unique Identifier,通用唯一标识符)是一个128位的标识符,通常表示为32个十六进制数字,以连字符分为5组:8-4-4-4-12。UUID的设计目的是在分布式系统中无需中央协调即可生成全局唯一的标识符。

UUID 版本

版本生成方式特点
v1基于时间戳 + MAC地址包含创建时间信息,可能泄露MAC地址
v2基于时间戳 + POSIX UID/GIDDCE安全版本,较少使用
v3基于命名空间 + MD5哈希相同输入产生相同UUID,确定性生成
v4基于随机数最常用,完全随机,无信息泄露
v5基于命名空间 + SHA-1哈希类似v3,但使用更安全的哈希算法
v7基于Unix时间戳 + 随机数新标准(RFC 9562),可排序,适合数据库主键

UUID v4 格式

格式:xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx

其中:
x = 随机十六进制数字 (0-f)
4 = 固定值,标识版本号为4
y = 8, 9, a, 或 b(标识变体为 RFC 4122)

示例:550e8400-e29b-41d4-a716-446655440000

总计128位 = 16字节
有效随机位:122位(6位用于版本和变体标识)

碰撞概率

UUID v4 有 2^122(约 5.3 × 10^36)种可能。根据生日悖论:

已生成数量碰撞概率
10亿(10^9)约 10^-19(十亿分之十亿分之一)
1万亿(10^12)约 10^-13
2.71 × 10^18约 50%(需生成这么多才有一半概率碰撞)

如果每秒生成10亿个UUID,需要连续生成约86年才有50%的概率出现一次碰撞。

常见使用场景

💡 小贴士:如果UUID用作数据库主键,建议考虑使用UUID v7(基于时间排序)而非UUID v4(纯随机),因为纯随机UUID会导致B树索引频繁分裂,降低数据库写入性能。UUID v7在保持唯一性的同时具有时间有序性。