UUID Generator
Make UUIDs of any version, up to 100,000 at once. Or paste yours to check each one and see its version and time. Nothing leaves your browser.
- 0
- UUIDs
- 0
- Valid
- 0
- Errors
Your new UUID
Press Generate (Alt G) for 10 at once, or paste UUIDs in the editor to check them.
On this page
About UUID Generator
Updated
UUID Generator makes UUIDs and checks them. Press Generate for a list of new ones, in any version and any format. Or paste UUIDs from a database, a log or a config file: each line is checked, and you see its version, its variant and the time inside it.
For GUIDs in the Windows form, uppercase in braces, the GUID Generator starts in that format. A GUID and a UUID are the same thing.
How to use it
- Set Count (1 to 100,000) and Version, next to Generate. On a phone they are under More.
- Press Generate (Alt G). The new UUIDs replace the editor text; Undo brings the old text back.
- To check UUIDs, paste them one per line, or load a file. Results shows every line, Inside splits one UUID into its fields, and Notes lists what is wrong.
- Set the format in Options: case, hyphens, Wrap in (braces, parentheses,
urn:uuid:, quotes) and Separator (new line or comma). Format (Alt F) writes the list that way, and Copy in Formatted takes it. - Sort by time (Alt S) puts v1, v6 and v7 UUIDs in the order they were made.
Which version to pick
- v4 is random. The most common version, and right for most IDs.
- v7 starts with the time in milliseconds, then random bits. New IDs sort after old ones, which keeps a database index small and fast. The best choice for primary keys.
- v5 and v3 are made from a namespace and a name, with SHA-1 and MD5. The same name always gives the same UUID. Pick v5, type one name per line, and each gets its UUID. Use v5 unless a system asks for v3.
- v1 is the time and a node, often the MAC address of the machine. v6 is v1 with the time first, so it sorts. For new work, use v7.
- Nil (all zeros) and Max (all ones) are special values, for no ID and for the top of a range.
Common errors
A letter that is not hex
A UUID uses only 0 to 9 and a to f. A letter O for a zero, or a g, comes from typing an ID by hand.
6794541e-9ba4-497a-8113-416792da1g6a
Character 34 is "g". A UUID uses only 0 to 9 and a to f.6794541e-9ba4-497a-8113-416792da1f6aThe right digit is in the source the ID came from. The tool cannot guess it: any hex digit makes a valid UUID.
A digit missing or one too many
A UUID copied from a cut-off column or a wrapped line loses a digit at the end. The tool names the group that is short.
3395f44d-8103-4f39-9e5a-0419d0de938
Group 5 has 11 hex digits; it needs 12. One digit is missing.3395f44d-8103-4f39-9e5a-0419d0de938cA hyphen in the wrong place
The groups are 8-4-4-4-12. The tool says where the hyphen is, and where it goes.
01a1a0af-e7c07-ec1-b76f-776165ac1c9d
Hyphen after 13 hex digits. Groups are 8-4-4-4-12. It goes after 12: move it one place left.01a1a0af-e7c0-7ec1-b76f-776165ac1c9dHow a UUID is built
Every UUID has the same two markers. The 13th hex digit is the version. The 17th says the variant: 8, 9, a or b for the RFC 9562 UUIDs that every library makes today. The rest depends on the version.
01a1a0af-e7c0-7ec1-b76f-776165ac1c9d
└── time ───┘ │ │
│ └ variant: b (RFC 9562)
└ version: 7
01a1a0afe7c0 = 1,793,697,245,120 ms since 1970
= 2026-11-03 09:14:05 UTCOpen Inside to see the fields of any UUID you paste: the time and node of a v1, the hash of a v5, the random bits of a v4.
UUID resources
- RFC 9562: Universally Unique IDentifiers (UUIDs)The standard since 2024. It replaces RFC 4122 and adds versions 6, 7 and 8 and the max UUID.
- Universally Unique Identifier on WikipediaThe history of UUIDs, each version, and the odds of a collision.
- Microsoft: Guid StructThe .NET Guid type, with NewGuid, CreateVersion7, Empty and AllBitsSet.
- Python: uuid moduleuuid1 and uuid3 to uuid8 (version 2 is left out on purpose), the namespaces, and the nil and max values.
- PostgreSQL: UUID Functionsgen_random_uuid, uuidv7 and the functions that read the version and time of a UUID.
- uuid on GitHubThe JavaScript package this tool uses to make UUIDs: v1, v3 to v7, nil and max.
UUID FAQ
What is a UUID generator?
A UUID generator makes universally unique identifiers: 128-bit IDs written as 32 hex digits, such as 9b2c6f1e-3d4a-4f8b-9c1d-2e5f7a8b0c3d. Anyone can make one without asking a central server, and it will not clash with an ID made anywhere else. This one makes every version, up to 100,000 at a time, and checks the UUIDs you paste.
How can I create a UUID?
Press Generate on this page. The Result shows a fresh v4 UUID before you click anything, with a Copy button.
In code, most languages have one built in: crypto.randomUUID() in JavaScript, uuid.uuid4() in Python, Guid.NewGuid() in C#, gen_random_uuid() in PostgreSQL. Open the Code view for the version you pick in ten languages.
What can someone do with a UUID?
Use it as an ID that no other system will ever make: a database key, a request or trace ID in logs, a file or upload name, an order or payment key that must not run twice, a device or session ID. Two systems can make UUIDs on their own and merge the data later without clashes.
A UUID is not a secret and not a password. Anyone who sees it can copy it, so do not use one as the only thing that grants access.
How do I make a UUID from a string?
Set Version to v5, then type one string per line, for example a name, an email address or a URL. Each line gets its UUID at once, and Generate puts the UUIDs in place of the strings. The same string in the same namespace always gives the same UUID, in this tool and in every language. Pick the namespace in Options: DNS, URL, OID, X.500 or your own UUID.
Should I use UUID v4 or v7?
Use v7 for database keys. It starts with the time in milliseconds, so new rows go to the end of the index, and the IDs sort in the order they were made. Use v4 when the ID must not show when it was made, for example in a public link.
Both have enough random bits that a clash will not happen in practice.
Can you decode a UUID?
Yes, in part. Every UUID says its version and variant. A v1, v6 or v7 UUID also holds the time it was made, and a v1 can hold the MAC address of the machine. Paste UUIDs in the editor and open Results or Inside. A v4 holds only random bits, and a v5 or v3 holds a hash, so the name cannot be read back.
How can I check if a UUID is valid?
Paste it, or a whole list, in the editor. A valid UUID has 32 hex digits (0 to 9 and a to f), in groups of 8-4-4-4-12. The tool marks the exact character that is wrong and says how to fix it.
It also reads the forms you meet in real files: uppercase, {braces}, (parentheses), urn:uuid: and 32 digits without hyphens. As a regular expression, a UUID with hyphens is ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ (case-insensitive).
How long is a UUID?
128 bits. As text it is 36 characters: 32 hex digits and 4 hyphens. Without hyphens it is 32 characters, and in braces 38. Stored as binary it takes 16 bytes.
Are UUIDs really unique?
A v4 UUID has 122 random bits. You would have to make about 2.7 quintillion of them to reach a 50% chance of one clash. A v7 adds the time, so two UUIDs can only clash when they are made in the same millisecond. A clash is far less likely than a bug in the code that uses them.
Are my UUIDs sent anywhere?
No. The tool makes and checks UUIDs in your browser, with the browser's own random numbers. Nothing is uploaded. You can check this in your browser's network tab while you use it.