什么是UUID v4?
UUID版本4是一个基于随机的128位标识符(36字符字符串),符合RFC 4122标准。它由以下部分组成:
- 随机值:122位随机数据
- 版本位:4位表示版本4(0100)
- 变体位:2位表示RFC 4122变体(10)
格式示例:f47ac10b-58cc-4372-a567-0e02b2c3d479
UUID v4如何工作
- 生成122位加密强度的随机数据
- 设置版本位为0100(版本4)
- 设置变体位为10(RFC 4122标准)
- 组装成带连字符的32个十六进制数字:8-4-4-4-12格式
优势与注意事项
优势 | 注意事项 |
---|---|
|
|
UUID v4结构
位 | 内容 |
---|---|
0-47 | 随机数据 |
48-51 | 版本(v4为0100) |
52-63 | 随机数据 |
64-65 | 变体(RFC4122为10) |
66-127 | 随机数据 |
UUID v4与其他版本比较
版本 | 基于 | 使用场景 | 隐私性 |
---|---|---|---|
UUID v1 | 时间 + MAC | 时间顺序ID | ⚠️ 泄露MAC |
UUID v3 | 命名空间 + MD5 | 确定性ID | ✅ 私密 |
UUID v4 | 随机 | 安全随机ID | ✅ 私密 |
UUID v5 | 命名空间 + SHA-1 | 确定性ID | ✅ 私密 |
UUID v6 | 时间(重排序) | 可排序ID | ⚠️ 泄露MAC |
UUID v7 | 时间 + 随机 | 可排序ID | ✅ 私密 |
常见使用场景
- 数据库键:分布式应用
- 安全令牌:认证系统
- 一次性标识符:临时访问
- 多租户系统:防止冲突
- 内容标识符:文档管理
- API请求ID:请求跟踪
常见问题
UUID v4是加密安全的吗?
是的。UUID v4依赖于加密强度的随机数生成器,使其适用于对安全性要求较高的应用。
UUID v4值会发生冲突吗?
理论上会,但实际上不会。凭借122位随机数据,即使生成数十亿个UUID,冲突的概率也是极其微小的。
我可以从UUID v4中提取创建时间吗?
不能。与基于时间的UUID(v1、v6、v7)不同,UUID v4仅包含随机数据,没有时间戳成分。
UUID v4值可以按创建时间排序吗?
不能。UUID v4值是随机的,与其创建时间没有关系。如需可排序ID,请考虑UUID v1、v6或v7。
UUID v4值会泄露任何系统信息吗?
不会。UUID v4完全由随机数据以及版本和变体位组成,提供了完全的隐私保护,不会泄露任何系统信息。