> uuid | guid | 生成 <
// 即时生成通用唯一标识符(UUID/GUID)
加密随机
UUID v4使用crypto.getRandomValues()进行加密安全的随机生成。您的数据永远不会离开浏览器。
批量生成
一次生成最多100个UUID。非常适合数据库填充、测试和开发工作流程。
多版本支持
支持UUID v4(随机)和v1(时间戳)。选择适合您用例的版本。
// 关于UUID生成
UUID工作原理:
UUID(通用唯一标识符)是由RFC 4122标准化的128位标识符。UUID v4使用122个随机位,提供2^122个可能的值。36字符格式遵循8-4-4-4-12模式,其中嵌入了版本和变体位。
示例:
550e8400-e29b-41d4-a716-446655440000
常见用例:
- >数据库主键和记录标识符
- >无需中央协调的分布式系统
- >会话令牌和关联ID
- >文件命名和资源标识
- >API请求追踪和日志记录
>> 常见问题
问:什么是UUID?
答:UUID(通用唯一标识符)是一个128位数字,用于在计算机系统中唯一标识信息。它也被称为GUID(全局唯一标识符)。标准格式是由连字符分隔的8-4-4-4-12十六进制字符。
问:UUID v4和v1有什么区别?
答:UUID v4使用随机数生成,是最常用的版本。UUID v1基于当前时间戳和节点标识符。V4因其简单性和隐私性而被大多数应用程序推荐使用。
问:UUID碰撞的概率是多少?
答:UUID v4有122个随机位,给出2^122(约5.3 x 10^36)个可能的值。生成重复的概率极低。
问:UUID和GUID有什么区别?
答:UUID和GUID本质上是同一个东西。UUID是大多数标准中使用的术语,而GUID是微软技术中常用的术语。
问:什么是RFC 4122?
答:RFC 4122是定义UUID格式、生成算法和命名空间约定的互联网标准。它规定了五个UUID版本(v1到v5)。
// 特殊的 UUID 值
这些固定值在 RFC 9562 中定义。
| UUID | 含义 |
|---|---|
| 00000000-0000-0000-0000-000000000000 | Nil UUID(所有位为 0) |
| ffffffff-ffff-ffff-ffff-ffffffffffff | Max UUID(所有位为 1) |
| 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | DNS 命名空间(用于 v3/v5) |
// 在代码中生成 UUID
JavaScript crypto.randomUUID() Python str(uuid.uuid4()) PHP Ramsey\Uuid\Uuid::uuid4()->toString() Go uuid.NewString() Java UUID.randomUUID() C# / .NET Guid.NewGuid() PostgreSQL gen_random_uuid() MySQL UUID() Bash uuidgen
>> 更多问题
问:主键应该用 UUID v4 还是 v7?
答:v7 以时间戳开头,大致按创建时间排序,插入 B-tree 索引时效率高。v4 完全随机,在大表中会造成分散的插入。需要排序和索引性能时选 v7,不希望 ID 暴露时间信息时选 v4。
问:在数据库中存储 UUID 的最佳方式是什么?
答:如果有原生类型就用它(如 PostgreSQL 的 uuid)。否则优先用 BINARY(16) 而非 CHAR(36):占用空间不到一半,比较和索引也更快。
问:生成两个相同 UUID v4 的概率有多大?
答:UUID v4 含 122 位随机数。即使 100 年内每秒生成 10 亿个,只要随机数生成器具备密码学强度,冲突概率也远低于十亿分之一。