UUID 版本:v1, v4, v5 解释

并非所有 UUID 都相同。不同的版本针对不同的用例进行了优化。

UUID v1(基于时间)

UUID v1 使用:时间戳(当前时间)+ 时钟序列(处理时钟向后移动)+ MAC 地址(或随机节点 ID) 优点:可排序(较新的 UUID > 较旧的 UUID)、时间信息嵌入其中、适用于时间序列数据。 缺点:可能泄漏 MAC 地址(隐私问题)、可预测(不适用于安全令牌)、依赖于系统时钟。 何时使用:分布式系统中的时间排序事件、数据库中需要时间排序的地方、事件溯源。

UUID v4(随机)

UUID v4 使用:加密安全的随机数据(122 位随机 + 6 位用于版本/变体) 优点:简单、不可预测(适用于安全)、无需时钟或 MAC 地址、最广泛支持。 缺点:不可排序、无时间信息、随机索引碎片(可能影响数据库性能)。 何时使用:通用唯一 ID、数据库主键、API 资源 ID、会话令牌、默认选择。

UUID v5(基于名称)

UUID v5 使用:命名空间 UUID + 名称的 SHA-1 哈希 → 确定性 UUID 优点:确定性(相同的输入 = 相同的 UUID)、幂等操作、无需状态或随机性。 缺点:需要选择命名空间、不像 v4 那样随机、依赖于名称稳定性。 何时使用:从 URL/域生成 UUID、幂等导入、内容可寻址存储、确定性 ID 生成。 示例:UUID v5(URL 命名空间,"https://example.com") 始终生成相同的 UUID。

试用工具

UUID生成器

UUID生成器

相关文章