Generate v1, v4, v5 and v7 UUIDs in bulk, validate and decode any UUID, and convert between formats — free, no sign-up, everything in your browser.
v5 is deterministic: the same namespace + name always gives the same UUID.
A UUID (Universally Unique Identifier, also called a GUID) is a 128-bit identifier that can be created on any machine without asking a central authority — which is exactly why databases, APIs, and distributed systems use them as keys. In text form a UUID is 32 hexadecimal characters in five groups separated by hyphens: 8-4-4-4-12, for example 550e8400-e29b-41d4-a716-446655440000. The 13th character tells you the version, and the first character of the fourth group tells you the variant. The current standard is RFC 9562 (May 2024), which obsoletes the older RFC 4122.
Not all UUIDs are built the same way. The right version depends on whether you need randomness, time ordering, or a repeatable value.
| Version | How it is built | Sortable by time? | Best for |
|---|---|---|---|
| v1 | Gregorian timestamp (100-nanosecond ticks since 1582) + node | Yes, with reordering | Legacy systems, time-ordered IDs where v6/v7 are unavailable |
| v3 | MD5 hash of a namespace + name | No | Deterministic IDs from names (legacy) |
| v4 | 122 bits of cryptographic randomness | No | General-purpose IDs, session tokens, API keys |
| v5 | SHA-1 hash of a namespace + name | No | Deterministic IDs from names (preferred over v3) |
| v6 | Like v1, with timestamp bits reordered for sorting | Yes | Time-ordered database keys |
| v7 | Unix timestamp in milliseconds + random bits | Yes | Database primary keys, event IDs, anything indexed by time |
| v8 | Custom / experimental layouts | Depends | Vendor-specific designs |
| Nil | All bits zero: 00000000-0000-0000-0000-000000000000 | — | "No value" placeholder |
| Max | All bits one: ffffffff-ffff-ffff-ffff-ffffffffffff | — | Upper-bound sentinel value |
This generator produces v1, v4, v5, v7, Nil, and Max. v3, v6, and v8 are documented above for completeness; v3 is superseded by v5, and v8 is reserved for custom layouts.
A v4 UUID has 122 random bits, giving 2122 — about 5.3 × 1036 — possible values. Collisions follow the birthday bound: you would need to generate roughly 261 UUIDs (about 2.3 billion billion) before the chance of even one collision reaches 50%. Put another way, generating 2 billion UUIDs per second, non-stop, it would take around 36 years to reach that point. For any real application, v4 collisions are not a practical concern — weak randomness is a bigger risk than the math, which is why this tool uses your browser's cryptographic random source (crypto.getRandomValues / crypto.randomUUID), never Math.random().
uuid type — id UUID PRIMARY KEY DEFAULT gen_random_uuid(). It stores 16 bytes and validates input.BINARY(16) for compact storage, converting with UUID_TO_BIN() / BIN_TO_UUID(), or use CHAR(36) if readability matters more than size.Generate a v4 UUID in the languages developers actually use:
A 128-bit identifier written as 32 hex characters in an 8-4-4-4-12 pattern. It can be generated anywhere without a central registry, which is why it works as a database key, API ID, or session token.
v4 for most things — it is random and private. v7 when the UUID is a database primary key or event ID, because its leading timestamp keeps new rows together in the index instead of scattering them.
For practical purposes, yes. A v4 UUID has 2122 possible values; the birthday bound means about 261 UUIDs would be needed for a 50% collision chance.
No. A v4 UUID is an identifier, not a secret: 122 bits is less than modern key sizes, and UUIDs are often exposed in URLs and APIs. Never use one as a password or API secret.
None in meaning — GUID is Microsoft's term for UUID. The only practical difference is storage: .NET GUIDs byte-reverse the first three groups, which the converter on this page handles.
PostgreSQL has a native uuid type. MySQL stores them most compactly as BINARY(16) with UUID_TO_BIN(), or as CHAR(36) for readability.
Classic v1 can, because the node field historically held a MAC address. This tool's v1 uses a random node instead, and for new projects v7 is the better time-ordered choice anyway.
Yes, free with no sign-up and no limits. Everything runs in your browser — nothing you generate is sent to a server, stored, or logged.
Nil is all zeros (00000000-0000-0000-0000-000000000000) and means "no value"; Max is all ones and is used as an upper-bound sentinel. Both are defined in RFC 9562.
Yes — generate up to 1,000 at once and download them as TXT, CSV, JSON, or a SQL INSERT script ready to run.
Sources and further reading: RFC 9562 — Universally Unique IDentifiers (UUIDs), which obsoletes RFC 4122. Version, variant, timestamp, and collision figures on this page follow that specification.
Try the Phone Storage Calculator, Data Usage Calculator, or AI Image Prompt Builder.