A Comprehensive Overview of the UUID Identifier System

通用唯一标识符(UUID,Universally Unique Identifier)遵循 RFC 9562(替代旧版 RFC 4122)标准定义,是一个 128 位的数字,通常表示为 32 个十六进制字符的 8-4-4-4-12 分组格式,例如 550e8400-e29b-41d4-a716-446655440000。UUID 的核心价值在于可以在分布式系统中不依赖中央协调机构而生成全局唯一的标识符。RFC 9562 定义了八个版本:v1(基于时间 + MAC 地址)、v2(DCE 安全版本,已弃用)、v3(基于命名空间的 MD5 哈希)、v4(随机数生成)、v5(基于命名空间的 SHA-1 哈希)、v6(可排序的时间+随机,修正 v1 的低位优先存储问题)、v7(Unix 时间戳 + 随机数,专门为数据库索引优化)、v8(厂商自定义格式)。目前最常用的是 v4(通用随机)和 v7(数据库友好)。v4 使用 122 位随机数,碰撞概率极低——生成 10 亿个 UUID v4 后,碰撞概率约为 10^{-15} 量级,在实际工程中可以忽略不计。

Practical Use Cases Across UUID Versions

UUID v4:通用的"万能钥匙"。适用于绝大多数分布式场景:微服务中的请求追踪 ID、前端组件实例化时的 key 属性(React 中常配合 crypto.randomUUID())、消息队列中的消息去重 ID、临时文件的唯一命名。几乎所有主流编程语言内置了 v4 生成支持,无需额外依赖。

UUID v5:确定性生成。当你需要从相同输入总是生成相同 UUID 时(例如将用户邮箱映射为固定的匿名化 ID),v5 是正确选择。它基于命名空间 UUID + 名称字符串的 SHA-1 哈希,确保幂等性。

UUID v7:数据库索引优化。v7 以毫秒级 Unix 时间戳开头,这使得在 B-Tree 索引中按时间顺序插入时避免了随机写入导致的页分裂问题。PostgreSQL 和 MySQL 8.0+ 的 UUID 索引在大量 v4 随机插入时会出现显著的性能下降,而 v7 保持了时间单调性,写入吞吐量可提升 30%-50%。

UUID vs 其他 ID 方案对比

与自增整数 ID 相比,UUID 消除了中心化序列生成器,但也带来了存储开销(128 bits vs 32/64 bits)和索引碎片问题。与 Snowflake(Twitter 的 64 位分布式 ID 方案)相比,UUID v7 在时间可排序性上类似,但 UUID 更长且十六进制编码不如 Snowflake 的十进制紧凑。与 ULID(Universally Unique Lexicographically Sortable Identifier)相比,ULID 使用 Crockford Base32 编码,26 字符,比 UUID 的 36 字符更短且保留了可排序性。本工具同时支持 ULID 生成,推荐在需要用户可见 ID 的场景(如订单号)中使用 ULID。

Frequently Asked Questions

Q: UUID v4 真的不会重复吗?
A: 从数学上讲有可能重复,但概率极低。v4 的 122 位随机数空间约为 5.3 × 10^36 种组合。通俗类比:你需要每秒生成 10 亿个 UUID v4,连续生成 100 年,才有大约 50% 的概率出现一次碰撞。在绝大多数实际系统中,时钟漂移、网络分区、磁盘损坏等问题的概率远高于 UUID 碰撞。

Q: 应该在数据库中使用 UUID 作为主键吗?
A: 优先使用 UUID v7(时间有序)而非 v4(随机)。如果必须使用 v4,确保数据库支持 uuid_generate_v4() 函数和合适的索引策略。PostgreSQL 用户可以结合 uuid-ossp 扩展使用。

Q: 本工具生成的 UUID 符合标准吗?
A: 是的。v4 严格遵循 RFC 9562 的 4.4 节规范,版本号位固定为 0100(4),变体位固定为 10xx(8/9/a/b),这些标识位确保了解析器可以正确识别 UUID 版本和布局。

隐私与安全保证

您的数据不会离开浏览器。所有 UUID 和 ULID 的生成完全使用浏览器内置的 crypto.getRandomValues() API,该 API 使用操作系统的密码学安全伪随机数生成器(CSPRNG),而非 Math.random() 这种可预测的伪随机源。生成的 ID 不会被发送到任何服务器——它们只存在于您的剪贴板和当前页面中。

Email

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

URL

https?://[\w.-]+(?:/[\w./-]*)?

Phone (US)

\d{3}-\d{3}-\d{4}

Date (ISO)

\d{4}-\d{2}-\d{2}

UUID Generator: Complete Guide

What is UUID?

UUID (Universally Unique Identifier) is a 128-bit label used to identify information. The most common format is UUID v4, which is randomly generated.

Example: 550e8400-e29b-41d4-a716-446655440000

UUID Versions Explained

UUID v4 (Random)
Uses cryptographically random numbers. Best for most use cases.
UUID v7 (Time-ordered)
Contains timestamp, sortable by creation time. Great for databases.
UUID v1 (Timestamp)
Contains MAC address and timestamp. Not recommended for privacy.

Common Use Cases

  • Database primary keys - Unique identifiers for records
  • API endpoints - Unique resource identifiers
  • Session IDs - Secure session identification
  • File naming - Unique file identifiers

Code Examples

JavaScript
crypto.randomUUID()
Python
import uuid; uuid.uuid4()

Related Tools

Hash Generator Timestamp Converter
class="related-tools-section">

Related Tools

How to Use This UUID Generator: Generate UUID v4 and v1 Online

This free online UUID generator lets you generate random UUIDs (v4) and time-based UUIDs (v1) instantly. Whether you need unique identifiers for database primary keys, session tokens, distributed system IDs, or file naming, this UUID generation tool supports bulk generation of up to 100 UUIDs at once.

How to Generate UUIDs Online

  1. Select the UUID version: UUID v4 (random, most common) or UUID v1 (time-based, includes MAC address and timestamp).
  2. Choose the quantity: generate a single UUID or bulk-generate up to 100 unique identifiers with one click.
  3. Click Generate to produce cryptographically random UUIDs formatted in the standard 8-4-4-4-12 hexadecimal pattern.
  4. Copy individual UUIDs or download the full list for use in your project.

UUID Format Example

// UUID v4 (random) — 122 random bits
550e8400-e29b-41d4-a716-446655440000

// UUID v1 (time-based) — timestamp + MAC
f47ac10b-58cc-4372-a567-0e02b2c3d479

// JavaScript: Generate UUID v4
const uuid = crypto.randomUUID();
console.log(uuid); // "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"

This free online UUID generator uses the browser's built-in crypto API for true randomness. For developers building microservices, designing database schemas, or implementing distributed tracing, this UUID generation guide is your go-to resource.