Skip to content
utility2026-07-253 min read

What Is a UUID

A UUID (Universally Unique Identifier) is a 128-bit identifier designed to be globally unique without central coordination. The standard format is:

550e8400-e29b-41d4-a716-446655440000

36 characters total (including 4 hyphens), divided into 5 segments of hexadecimal digits.

UUID Versions

UUID v4 (Random)

The most widely used version, generated entirely from random numbers. The collision probability is astronomically low — generating 10 trillion UUIDs gives only a 50% chance of collision.

Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
        (4 = version, y = 8/9/a/b)

Best for: Database primary keys, session IDs, API request tracing

UUID v1 (Timestamp + MAC)

Uses the current timestamp and machine MAC address. Contains time information but exposes the MAC address — a privacy concern.

UUID v5 (Namespace-based)

Uses SHA-1 hashing of a namespace + name to produce deterministic UUIDs. The same input always yields the same output.

Best for: Scenarios requiring reproducible IDs (e.g., URL identification)

NanoID: A Shorter Alternative

NanoID is a configurable-length ID generator using URL-friendly characters (A-Za-z0-9_-):

NanoID (21 chars): V1StGXR8_Z5jdHi6B-myT

Comparison with UUID v4:

| Feature | UUID v4 | NanoID | |---------|---------|--------| | Length | 36 characters | Configurable (default 21) | | Character set | Hexadecimal | 64 URL-friendly characters | | Collision probability | 2^-128 | Depends on length & charset | | URL friendly | Requires hyphen removal | Naturally friendly |

ULID: Sortable Unique IDs

ULID (Universally Unique Lexicographically Sortable Identifier) combines a timestamp with random data, enabling time-based sorting:

Format: 01ARZ3NDEKTSV4RRFFQ69G5FAV (26 chars, Crockford Base32)

| Feature | UUID v4 | ULID | |---------|---------|------| | Sortable | No | Yes, by time | | Length | 36 characters | 26 characters | | Time info | No | Yes (first 10 chars = timestamp) |

Best for: Primary keys requiring chronological ordering, log tracing

How to Choose an ID Scheme

| Scenario | Recommended | |----------|-------------| | Database primary key | ULID (ordered, index-friendly) | | Session/tracking ID | UUID v4 (standard, widely supported) | | Short links/invite codes | NanoID (short, URL-friendly) | | Reproducible IDs | UUID v5 (deterministic) | | Distributed systems | UUID v4 or ULID (no coordination needed) |

Using an Online UUID Generator

DevToolkit Pro's UUID Generator supports:

  • UUID v4: One-click generation, copy-ready
  • NanoID: Customizable length and character set
  • ULID: Time-stamped, sortable IDs
  • Batch generation: Create multiple IDs at once

FAQ

How Likely Is a UUID Collision?

UUID v4 has a space of 2^128 ≈ 3.4×10^38. Generating 1 billion UUIDs yields a collision probability of roughly 10^-18 (virtually zero). No UUID collision has ever been confirmed in practice.

Is NanoID More Secure Than UUID?

It depends on length and character set. A 21-character NanoID (64-char set) has ~126 bits of entropy — close to UUID v4's 128 bits. Choose a sufficiently long NanoID.

Why Is ULID Better Than UUID for Database Keys?

Database indexes (e.g., B+Tree) are more efficient with sequential inserts. UUID v4 is fully random, causing page splits on every insert. ULID is time-ordered, so the insertion pattern is closer to sequential writes, yielding better performance.


This article is brought to you by DevToolkit Pro. More developer tools at the homepage.


ad