什么是UUID?
- UUID(Universally Unique Identifier):通用唯一标识符
- GUID(Globally Unique Identifier):全局唯一标识符
- UUID和GUID本质上是同一个概念,只是叫法不同
- 由128位(16字节)数字组成,通常以32个十六进制数字表示
- 符合RFC 4122标准
UUID格式说明:
| 格式 |
说明 |
示例 |
| 标准格式 |
32位十六进制数字,用连字符分隔(8-4-4-4-12) |
550e8400-e29b-41d4-a716-446655440000 |
| 紧凑格式 |
32位十六进制数字,无分隔符 |
550e8400e29b41d4a716446655440000 |
| 大括号格式 |
标准格式,外加大括号 |
{550e8400-e29b-41d4-a716-446655440000} |
| URN格式 |
统一资源名称格式 |
urn:uuid:550e8400-e29b-41d4-a716-446655440000 |
UUID版本:
| 版本 |
生成方式 |
说明 |
| Version 1 |
时间戳 + MAC地址 |
基于时间和网卡地址,可能泄露隐私 |
| Version 3 |
MD5哈希 |
基于命名空间和名称的MD5哈希 |
| Version 4 |
随机数 |
本工具使用的版本,完全随机生成 |
| Version 5 |
SHA-1哈希 |
基于命名空间和名称的SHA-1哈希 |
UUID结构(Version 4):
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
│ │ │ │ └─ 12位随机数
│ │ │ └───── 4位随机数(y的首位固定为8、9、a或b)
│ │ └───────── 4位版本号(固定为4)
│ └───────────── 4位随机数
└────────────────── 8位随机数
使用场景:
- 数据库主键(分布式系统)
- 文件名或资源标识
- 会话ID或事务ID
- API密钥或令牌
- 消息队列中的消息ID
- 微服务架构中的请求追踪ID
功能特点:
- 支持批量生成(最多1000个)
- 支持4种标准格式
- 支持大小写转换
- 一键复制或下载为文件
- 符合RFC 4122标准
- 基于浏览器随机数生成,安全可靠
UUID vs GUID:
- UUID:开放标准(RFC 4122),跨平台通用
- GUID:微软术语,主要用于Windows和.NET
- 两者在技术上完全相同,只是命名不同
- UUID更常用于Web和跨平台应用
注意事项:
- UUID虽然理论上是唯一的,但在极端情况下可能重复
- Version 4 UUID基于随机数,碰撞概率约为 1/2^122
- 不建议将UUID用于安全敏感的场景(如密码)
- UUID占用空间较大(16字节),在性能敏感场景需权衡