> 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-000000000000Nil UUID(所有位为 0)
ffffffff-ffff-ffff-ffff-ffffffffffffMax UUID(所有位为 1)
6ba7b810-9dad-11d1-80b4-00c04fd430c8DNS 命名空间(用于 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

>> 更多问题

问:GUID 在 .NET 中有哪些格式?

答:Guid.ToString 支持 N(32 位数字)、D(带连字符,默认)、B(花括号)、P(圆括号)和 X(十六进制结构)。解析时不区分大小写。

问:SQL Server 的 NEWID() 与 NEWSEQUENTIALID() 有什么区别?

答:NEWID() 返回随机 GUID,可能导致索引严重碎片化。NEWSEQUENTIALID() 返回递增值,只能用作列默认值。其值可预测,不适合用作机密。

问:.NET 中有可排序的 GUID 吗?

答:从 .NET 9 起,Guid.CreateVersion7() 可按 UUID v7 生成按时间排序的 GUID。注意 Guid 的字节顺序和 SQL Server 的排序规则与文本表示并不一致。

// 其他语言