🆔 UUID 工具

完整的UUID/GUID生成和验证工具包,支持所有RFC 4122版本以及现代替代方案如ULID,适用于分布式系统。

什么是UUID?

UUID(通用唯一标识符) 是一种标准化的标识符格式,设计为在空间和时间上全球唯一。UUID是128位值,通常表示为32个十六进制数字,分为五组,用连字符分隔:123e4567-e89b-12d3-a456-426614174000。

UUID由RFC 9562标准定义(取代了之前的RFC 4122),并在计算平台中广泛使用,用于识别信息而无需集中注册或协调。

UUID格式

所有UUID共享一个通用格式,由36个字符组成(32个十六进制数字加4个连字符),排列模式为:

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

其中:

  • x 是任意十六进制数字(0-9,a-f)
  • M 表示UUID版本(1-7)
  • N 表示UUID变体(现代UUID通常为8、9、A或B)

隐私与处理

所有UUID的生成和验证均在您的浏览器本地使用加密安全的随机数生成完成。工具不会将您的标识符发送到任何地方——所有处理均在您的设备上进行,使这些工具适合处理敏感系统标识符。

UUID版本及用例

这些工具支持所有RFC标准UUID版本以及现代替代方案如ULID,满足分布式系统、数据库和适合URL的应用的特定需求。无论您需要随机ID、基于时间戳的标识符还是紧凑型替代方案,合适的UUID格式确保您的系统可靠扩展。

标准UUID: 创建符合RFC的版本1、3、4、5、6和7的标识符,适用于不同用例。

现代替代方案: 生成用于词典排序ID的ULID和适合紧凑应用的短UUID。

批量生成: 同时创建数千个UUID,用于数据库填充和负载测试。

分析工具: 解码现有UUID以提取嵌入信息并验证格式合规性。

UUID版本比较

VersionName生成方法Time-ordered用例
UUID v1Timestamp当前时间戳 + 节点ID(MAC)是(部分支持)日志记录,分布式系统
UUID v3基于名称(MD5)命名空间 + 名称的MD5哈希No相同输入的一致ID
UUID v4Random随机或伪随机数No通用,最常用
UUID v5基于名称(SHA-1)命名空间 + 名称的SHA-1哈希No具有更强哈希的一致ID
UUID v6重新排序的时间戳用于排序的时间戳Yes数据库键,时间可排序记录
UUID v7Unix纪元时间戳Unix时间戳 + 随机数据Yes现代可排序标识符
空UUID零UUID全零N/A特殊值,未初始化标记

UUID的优势

  • 无需协调: 无需中央协调生成ID
  • 全球唯一性: 极低的碰撞概率
  • 固定长度: 一致的36字符字符串表示
  • Cross-Platform: 几乎所有编程语言均支持
  • Versatile: 不同版本适用于不同用例

非标准UUID替代方案

ID类型DescriptionAdvantagesDisadvantages
GUID微软的UUID实现功能等同于UUID旧系统中的一些实现差异
ULID通用唯一词典排序标识符词典排序,时间戳优先,大小写不敏感较新,采用较少
Snowflake IDTwitter的分布式ID系统时间可排序,紧凑(64位)需要中央协调
CUID/CUID2抗碰撞ID短小,适合客户端生成非官方标准
Nano ID小巧、安全、适合URL的唯一字符串ID生成器比UUID更小,可配置字母表未标准化
短UUID标准UUID的更短编码更紧凑的表示需要与标准UUID相互转换
空UUID所有位均为零的UUID特殊语义含义非唯一(用作特殊值)
Minecraft UUID带或不带连字符的UUID兼容标准UUID仅格式差异

实际应用

  • 数据库主键: 尤其在分布式或复制数据库中
  • 分布式系统: 跨多个系统识别实体
  • Web应用: 会话标识符,跟踪匿名用户
  • 内容管理: 文档和媒体标识符
  • APIs: 用于跟踪和调试的请求和事务标识符
  • 物联网: 无需中央注册的设备识别
  • 数据同步: 跨多个数据存储识别记录
  • 软件许可: 唯一产品或许可密钥

常见问题

是否将任何数据发送到您的服务器?

不会。所有UUID的生成和验证均在您的浏览器本地使用JavaScript完成。您的标识符和数据绝不会离开您的设备。

我应该使用哪个UUID版本?

一般使用UUID v4(随机),基于时间戳和MAC地址使用v1,现代基于时间戳系统使用v6/v7,基于名称的确定性ID使用v3/v5,词典排序替代方案使用ULID。

UUID真的唯一吗?

是的。正确生成时,UUID的碰撞概率极低,实际应用中被视为唯一。随机UUID(v4)有2^122种可能值。

UUID和ULID有什么区别?

ULID为26字符(UUID为36字符),按创建时间词典排序,URL安全且大小写不敏感,同时保持相同的唯一性保证。

我可以将它们用作数据库主键吗?

可以。UUID v4非常适合分布式数据库,v6/v7提供时间戳排序,提升数据库索引性能。ULID提供类似优势且长度更短。

Resources