UUID Generator
Generate v1-v7 UUIDs (RFC 9562) or decode any UUID's version, variant and timestamp.
Results are provided as is, for general information. Check anything important before relying on it. See the Terms of Use.
About this tool
Generates UUIDs in every workhorse version of RFC 9562 — v4 (random), v7 (time-ordered), v1 and v6 (timestamp + node), v3 (MD5 namespace-based) — plus the nil and max sentinels, up to 100 at a time with uppercase and no-separator options. A decode tab parses any UUID back: version, variant, and the creation timestamp for v1/v6/v7. Random versions draw from your browser's crypto API, not a seeded pseudorandom generator.
How it works
128 bits = 8-4-4-4-12 hex digits Version = first digit of the third group; variant = top bits of the fourth
A UUID is a 128-bit identifier written as five hyphen-separated groups. Version 4 fills 122 of those bits with random data, so collisions are practically impossible; version 7 puts a millisecond timestamp first so IDs sort by creation time.
| Question | Working | Answer |
|---|---|---|
| Which version is 550e8400-e29b-41d4-a716-446655440000? | third group starts with 4 | Version 4 (random), variant RFC 9562 |
When to use it
Questions
Can two UUIDs collide?
Practically never. A v4 UUID carries 122 random bits, and you would need to generate about 2.7 quintillion UUIDs for a 50% chance of a single duplicate. For any real system, treat collisions as nonexistent.
Are these UUIDs safe to use as secret tokens?
They are unguessable in practice, but they are identifiers, not a credential scheme. Anything security-sensitive — a reset link, an API key — should sit behind a system with expiry and revocation, not just the UUID itself.
What do the uppercase and no-separator options change?
Presentation only. UUID comparison is case-insensitive and the dashes are cosmetic, so both variants are valid — just be consistent if the system you are feeding stores them bare.
What is the difference between a UUID and a GUID?
None in practice — they are two names for the same 128-bit identifier format. GUID is what Microsoft calls it (it is the term in Windows, COM and SQL Server documentation); UUID is the name in the RFC 9562 spec and everywhere else. Both are 32 hex digits, usually hyphenated, and a GUID generator and a UUID generator produce interchangeable values. If a form asks for a GUID, a v4 UUID from this tool is exactly what it wants.
When should I pick v4 versus v7 versus v1?
V4 is pure randomness — the universal interchange default, carrying no metadata. V7 (standardized in RFC 9562, May 2024) encodes a millisecond timestamp in its leading bits, so IDs generated later sort after earlier ones and database indexes stay compact where random v4 IDs scatter inserts across a B-tree; the trade-off is that v7 exposes creation time to anyone who sees the ID. V1 is the classic timestamp-plus-node format; V6 is the same data reordered so the string itself sorts chronologically. This tool keeps all of them one selector apart.
Does v1 expose my MAC address?
Not here. Classic v1 nodes come from the device's MAC address, which leaks hardware details — this tool never touches it. The node field is filled with a fresh random value carrying the multicast bit (per the RFC's privacy guidance), or one stable random node if you tick the fixed-node option. Either way nothing about your machine is encoded.
What is v3 for, and why is the output always the same?
V3 derives an identifier from a namespace (DNS, URL, OID or X.500) plus a name, using MD5. The same namespace and name always produce the same UUID — that is the point: two machines can derive the identical ID independently without sharing a registry. Enter www.example.com under the DNS namespace and you get the RFC's published test vector, 5df41881-3aed-3515-88a7-2f4a814cf09e. Because the output is predictable, never use v3 where uniqueness from randomness matters.
What are the nil and max UUIDs?
Two reserved sentinels from RFC 9562: nil is all zeroes (00000000-0000-0000-0000-000000000000) and max is all ones. Standards use them as explicit placeholders — a value that means 'no UUID' or 'the upper bound' — rather than as identifiers. They are handy in migrations and schemas that need a typed stand-in for 'unset'.
What does the decode tab show?
Paste any UUID — dashes, braces and case optional — and it reports the canonical lowercase form, the version nibble (1-8, or nil/max), and the variant bits. For time-bearing versions it decodes the embedded creation timestamp: v1 and v6 count 100-nanosecond ticks since 1582 from the Gregorian epoch, v7 carries unix milliseconds. It also shows the clock sequence and node for v1/v6, and flags whether the node is random/multicast rather than a hardware MAC.