<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons&display=swap">

UUID / GUID Generator & Decoder

Generate version 1 and 4 UUIDs, or decode any UUID/GUID to inspect its version, variant, embedded timestamp, and field structure.

Generated UUIDs

🆔

No UUIDs generated yet

Click "Generate UUIDs" to create unique identifiers

What is a UUID?

A UUID (Universally Unique Identifier), also called a GUID (Globally Unique Identifier), is a 128-bit number used to identify information without requiring a central authority to coordinate the assignment. Written in its standard form it looks like 550e8400-e29b-41d4-a716-446655440000 — 32 hexadecimal digits grouped into five sections separated by hyphens.

UUIDs come in several "versions" that determine how they are generated. Version 1 (v1) is time-based, built from the current timestamp and a node identifier, so UUIDs generated in sequence are roughly sortable by creation time. Version 4 (v4) is generated from random or pseudo-random numbers and carries no information about when or where it was created — it is by far the most common version in modern software because it needs no coordination and is trivial to generate.

Regardless of version, every UUID reserves a few fixed bits to encode its version number and "variant," which is why a v4 UUID always has a 4 in the same position (xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx) and a y character that is always 8, 9, a, or b.

What is this UUID Generator & Decoder?

This tool has two modes, switchable from the tabs at the top. "Generate" creates version 1 (timestamp-based) and version 4 (random) UUIDs directly in your browser, with no server round-trip. You can generate a single UUID or up to 1,000 at once, and control exactly how each one is formatted before you copy or download it.

Formatting options include lowercase or uppercase output, including or omitting the hyphens between groups, and wrapping the result in curly braces — the format some systems (like older Windows APIs and certain COM/registry contexts) expect. Every generated UUID can be copied individually, the whole batch can be copied or downloaded as a .txt file, and you can regenerate a fresh batch with the same settings in one click.

"Decode / Analyze" does the reverse: paste in any existing UUID and it parses the version, variant, and raw field breakdown straight from the bits. For version 1 UUIDs it reconstructs the actual embedded creation timestamp, clock sequence, and node ID. For version 3 and 5 UUIDs it identifies the hash algorithm used (MD5 or SHA-1) and explains why the original namespace/name can't be recovered. Nil and Max UUIDs are recognized as their own special sentinel values.

Why Use a UUID Generator?

  • Database primary keys — UUIDs let you generate unique record IDs on the client or in application code before an INSERT, without waiting on an auto-increment counter from the database.
  • Distributed systems — because UUIDs don't require a central coordinator to avoid collisions, independent services, microservices, or offline clients can each generate IDs safely without ever comparing notes.
  • Session and request tracking — UUIDs make convenient, hard-to-guess session tokens, API request IDs for tracing/logging, and correlation IDs across distributed logs.
  • File and object naming — generating a UUID-based filename avoids collisions when many users or processes upload files to the same storage location.
  • Testing and prototyping — quickly generate realistic-looking placeholder IDs for seed data, mock API responses, or fixtures without writing generation code yourself.

Features of This Tool

Generate UUID version 1 (timestamp-based) or version 4 (random)
Bulk generation — create anywhere from 1 to 1,000 UUIDs in a single click
Lowercase or uppercase output
Toggle hyphens on or off (550e8400-e29b-... vs 550e8400e29b...)
Wrap UUIDs in curly braces ({550e8400-...}) for systems that expect that format
Copy any single UUID from the generated list with one click
Copy the entire batch to the clipboard at once
Download the full batch as a .txt file, one UUID per line
Regenerate a new batch instantly using your current settings
Decode / Analyze any UUID to reveal its version, variant, and raw field breakdown
Reconstructs the real embedded timestamp, clock sequence, and node ID from version 1 UUIDs
Identifies the hash algorithm (MD5/SHA-1) behind version 3 and 5 UUIDs
Recognizes the Nil UUID and Max UUID sentinel values
Accepts UUIDs with or without hyphens, braces, or a urn:uuid: prefix
Runs entirely in your browser — no UUIDs are sent to or stored on a server

How to Use the UUID Generator & Decoder

  1. 1

    Choose a UUID version

    In the Generator Options panel, select Version 4 (Random) for general-purpose unique IDs, or Version 1 (Timestamp) if you want IDs that are roughly time-ordered.

  2. 2

    Set the quantity

    Enter how many UUIDs you need, from 1 up to 1,000, in the Quantity field.

  3. 3

    Pick formatting options

    Choose lowercase or uppercase, and toggle "Include hyphens" and "Include braces" depending on what format the target system expects.

  4. 4

    Generate

    Click "Generate UUIDs" to produce the batch. The results appear in the main panel, each on its own row.

  5. 5

    Copy or export

    Copy an individual UUID with its row button, use "Copy All" to grab the whole batch, or "Download" to save it as a .txt file.

  6. 6

    Regenerate as needed

    Click "Regenerate" to produce a brand-new batch using the same settings, or "Clear" to empty the results and start over.

  7. 7

    Switch to Decode / Analyze

    Click the "Decode / Analyze" tab, paste in any UUID, and click "Decode" (or press Enter) to see its version, variant, and field breakdown.

Common Mistakes and Pitfalls

Treating UUIDs as guaranteed unique with zero risk

UUIDs are unique for all practical purposes, but they are not mathematically impossible to collide. Version 4 UUIDs have 122 random bits, so the probability of a collision is astronomically small — but it is not literally zero. Don't rely on a UUID alone as a security token or the sole integrity check in a high-stakes context without additional validation.

Mixing up what each version guarantees

Version 1 UUIDs encode a timestamp and can leak information about when (and, in stricter implementations, on what machine) they were generated — they are also somewhat predictable in sequence. Version 4 UUIDs are random and reveal no timing information. Pick the version that matches your actual requirement instead of assuming they're interchangeable.

Format mismatches with the target system

Some systems expect UUIDs with hyphens (550e8400-e29b-41d4-a716-446655440000), others expect them stripped (550e8400e29b41d4a716446655440000), and some legacy Windows/COM contexts expect curly braces ({550e8400-...}). Sending a UUID in the wrong format can cause a parser to reject it outright — check the target system's expected format before generating.

Case-sensitive comparisons

UUIDs are conventionally lowercase, but hex digits a–f are valid in either case and represent the same value. If your application compares UUIDs as raw strings instead of normalizing case first, an uppercase and lowercase version of the same UUID will incorrectly be treated as different values.

Using UUID v1 assuming it's sortable across generators

v1 UUIDs are only roughly time-ordered because the timestamp isn't the leading bit group and clock precision/skew across machines varies. Don't rely on lexicographic sorting of v1 UUIDs to reconstruct a precise event order.

UUID Generation Examples

Single v4 UUID, default formatting

A standard random UUID with lowercase letters and hyphens — the most common format used for database keys and API IDs.

Input

Version: v4, Quantity: 1, Case: lowercase, Hyphens: on, Braces: off

Output

3f2a9c1e-7b4d-4a6f-9c2e-1d8f5b3a7e6c

Bulk v4 UUIDs, no hyphens, uppercase

Three compact-format UUIDs, useful for systems that store IDs as fixed-length hex strings without separators.

Input

Version: v4, Quantity: 3, Case: uppercase, Hyphens: off, Braces: off

Output

3F2A9C1E7B4D4A6F9C2E1D8F5B3A7E6C
A17E4B2C9F3D48E1B6A2C7D9E4F1A8B3
8D4C2A1F9E3B47C6A5D8B2E1F4C9A7D3

v1 UUID wrapped in braces

A timestamp-based UUID formatted with curly braces, matching the style some legacy Windows/COM registry entries expect.

Input

Version: v1, Quantity: 1, Case: lowercase, Hyphens: on, Braces: on

Output

{6ba7b810-9dad-11d1-80b4-00c04fd430c8}

Decoding a version 1 UUID

Pasting a real v1 UUID into "Decode / Analyze" reconstructs its embedded creation timestamp, clock sequence, and node ID.

Input

6ba7b810-9dad-11d1-80b4-00c04fd430c8

Output

Version 1, Variant: RFC 4122, Timestamp: 1998-02-04T22:13:53.151Z, Clock sequence: 180, Node: 00:c0:4f:d4:30:c8

Frequently Asked Questions

What's the difference between a UUID and a GUID?

They're the same concept. "UUID" (Universally Unique Identifier) is the name used in the general RFC 4122 standard; "GUID" (Globally Unique Identifier) is Microsoft's name for its own implementation. In practice the terms are used interchangeably.

Should I use version 1 or version 4?

Use version 4 (random) for almost everything — it's simpler, requires no coordination, and reveals no information about when it was created. Use version 1 (timestamp-based) only if you specifically need IDs that are roughly ordered by creation time.

Can two generated UUIDs ever be the same?

In theory, yes — but for version 4 UUIDs the probability is so low (about 1 in 2.7 x 10^38 combinations) that it is considered negligible for virtually all practical purposes, including generating millions or billions of IDs.

Is it safe to use a UUID as a security token or password?

A random v4 UUID has real entropy, but it wasn't designed as a security primitive and shouldn't be treated as one on its own. For anything security-sensitive (session tokens, password reset links, API keys) use a purpose-built cryptographically secure random token generator instead.

Why does my system reject the UUID I generated?

This usually comes down to formatting. Check whether the target system expects hyphens or not, lowercase or uppercase, and whether it wants the value wrapped in curly braces. Adjust the formatting options in this tool to match, then regenerate.

Are the UUIDs generated here sent to a server?

No. All generation happens locally in your browser using JavaScript — nothing is transmitted or stored remotely.

What's the maximum number of UUIDs I can generate at once?

This tool supports generating between 1 and 1,000 UUIDs in a single batch. If you need more, generate multiple batches and combine the downloaded files.

Can the decoder recover the original data behind a v3 or v5 UUID?

No. Version 3 and 5 UUIDs are built from an MD5 or SHA-1 hash of a namespace UUID plus a name string. Hashing is one-way by design, so the decoder can tell you which algorithm was used and confirm the version/variant, but it cannot reverse the hash back to the original namespace or name.

Why does the decoder say a v1 UUID's node ID might not be a real MAC address?

RFC 4122 reserves the lowest bit of the node ID's first byte (the "multicast bit") as a signal. If an implementation can't or won't use the machine's real network card address, it generates a random node ID instead and sets that bit to 1, so no real MAC address is ever mistaken for a random one. This tool checks that bit and tells you which case applies.

What are the Nil UUID and Max UUID?

The Nil UUID (00000000-0000-0000-0000-000000000000) is all zero bits and conventionally represents "no value." The Max UUID (ffffffff-ffff-ffff-ffff-ffffffffffff) is all one bits and is used as a sentinel/upper-bound value, formalized in RFC 9562. The decoder recognizes both as special cases rather than trying to parse a version out of them.