无需登录 数据私有 本地保存

UUID/GUID在线生成器 - 全局唯一标识符

41
0
0
0
UUID v4 已生成 0
点击下方按钮生成 UUID
版本位 (v4) 变体位
批量生成
数量:
点击批量生成创建多个UUID
历史记录
暂无记录
你知道吗?

UUID v4 使用随机数生成,共有 2122(约 5.3×1036)种可能。即使每秒生成10亿个UUID,也需要约 100万亿年 才可能发生一次碰撞。

常见问题与知识

UUID(Universally Unique Identifier,通用唯一标识符)是一个128位的数字,用于在计算机系统中唯一标识信息。GUID(Globally Unique Identifier)是微软对UUID的实现名称,两者本质相同。标准UUID由32个十六进制字符和4个连字符组成,格式为:xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx,共36个字符。UUID广泛应用于数据库主键、分布式系统、文件标识、会话令牌等场景。

  • UUID v1:基于时间戳和MAC地址生成。包含生成时间和机器信息,可追溯,但可能暴露隐私。适用于需要时间排序的场景。
  • UUID v4:完全基于随机数生成(除版本位和变体位外)。不可预测,隐私性好,是最常用的版本。本工具默认生成v4。
  • UUID v3/v5:基于命名空间和名称的哈希(MD5/SHA1)生成,相同输入产生相同UUID,适用于需要确定性ID的场景。

UUID v4 有 122 位随机熵(版本位占4位,变体位占2位),即 2122 ≈ 5.3×1036 种可能。根据生日悖论,要达到50%碰撞概率,需要生成约 2.7×1018 个UUID。即使以每秒10亿个的速度持续生成,也需要超过85年才有50%概率出现一次碰撞。在实际应用中,UUID v4的碰撞概率极低,可视为安全唯一。

  • JavaScript/Node.js:crypto.randomUUID() 或使用 uuid 库。
  • Python:import uuid; uuid.uuid4()
  • Java:java.util.UUID.randomUUID()
  • PHP:uuid_create(UUID_TYPE_RANDOM) 或使用 ramsey/uuid 库。
  • Go:使用 github.com/google/uuid 包。
  • C#:Guid.NewGuid()

两者完全相同,仅表示形式不同。标准格式(带连字符)便于阅读和校验,共36个字符;无连字符格式更紧凑,共32个字符,常用于URL、文件名或存储空间敏感的场景。本工具支持4种格式切换:标准小写、标准大写、无连字符小写、无连字符大写,满足不同使用需求。

UUID作为主键有优点也有缺点。优点:全局唯一、适合分布式系统、避免ID冲突、不暴露数据量。缺点:UUID比自增整数占用更多存储空间(16字节 vs 4-8字节),随机UUID可能影响B+树索引性能。如果使用UUID作为主键,建议使用有序UUID(如UUID v7)或使用PostgreSQL的UUID类型配合合适的索引策略。