UUID(Universally Unique Identifier,通用唯一标识符)是一种用于在软件系统中唯一标识信息的 128 位标准格式,最初由 RFC 4122(现已更新为 RFC 9562)定义。
它广泛应用于以下场景:
UUID 的标准字符串表示形式如下:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
该格式共包含 32 个十六进制字符与 4 个连字符,例如:550e8400-e29b-41d4-a716-446655440000。
版本 1 (v1) 时间戳
基于当前时间戳和节点 ID(通常为 MAC 地址)生成。具有时间顺序性,但可能暴露机器的物理地址信息。
版本 3 (v3) MD5 哈希
基于 MD5 哈希算法,将命名空间 UUID 与 name 字符串组合生成。相同输入产生相同输出(确定性)。
版本 4 (v4) 随机数 最常用
基于加密安全的随机数生成。碰撞概率极低,是目前最广泛使用的版本。
版本 5 (v5) SHA-1 哈希
与 v3 机制相同,但使用 SHA-1 哈希算法,安全性略优于 v3,同样具备确定性。
版本 6 (v6) 可排序
v1 的改进版,将时间字段重新排列以支持自然排序,更适合作为数据库索引使用。
版本 7 (v7) 时间戳 可排序 推荐
基于 Unix 毫秒时间戳生成,天然具备时间有序性。推荐在需要有序 UUID 的新系统中使用。
提示:在选择 UUID 版本时,请根据业务对“有序性”、“安全性”和“确定性”的需求进行权衡。
评论 0