283 字
1 分钟
不同版本 UUID 对比
对比
版本 | 算法 | 可排序 | 时间可推 | 隐私信息 | 碰撞风险 | 典型用例 | 示例 |
---|---|---|---|---|---|---|---|
v1 | 时间戳 + 节点(MAC),结构:60 位时间 + 48 位节点 + 14 位时钟序列 | 支持 | 支持 | 暴露 MAC 地址 | 低(仅在时钟回退时) | 分布式有序 ID需保留生成时间/设备信息 | 550e8400-e29b-11d4-a716-446655440000 |
v2 | DCE 安全(同 v1,但节点字段替换为 POSIX UID/GID) | 支持 | 支持 | 暴露 UID/GID | 低 | DCE 安全授权场景实际少用 | — |
v3 | MD5 哈希(命名空间 + 名称) | 不保证 | 不支持 | 不暴露原始输入 | 极低 | 命名空间内一致性 ID固定映射 | 3d813cbb-47fb-32ba-91df-831e1593ac29 |
v4 | 随机(122 位随机数) | 不保证 | 不支持 | 无 | 极低 | 通用随机 ID无需参数 | f47ac10b-58cc-4372-a567-0e02b2c3d479 |
v5 | SHA-1 哈希(命名空间 + 名称) | 不保证 | 不支持 | 不暴露原始输入 | 更低(相对 v3) | 命名空间内一致性 ID推荐高安全 | 3d813cbb-47fb-52ba-91df-831e1593ac29 |
补充说明
- RFC 4122 标准 目前仅定义 v1–v5;
- v6/v7 (草案):为改进时间有序性(将时间戳字段前置、优化对比)而提出,部分库已支持,用于数据库主键、日志索引等场景。
不同版本 UUID 对比
https://blog.lpkt.cn/posts/uuid-compare/