Generate UUIDs
Up to 500 at a time, made by your browser rather than requested from a server, so nobody else has ever seen the random ones.
How to use it#
- Pick a version, how many you need, and the format you want them in. A new batch appears as you change the version or the count.
- For version 5, choose a namespace and type one name per line. Each name gets its UUID straight away, and the same name always gets the same one.
- Click Generate for a fresh batch with the same settings. Changing the format restyles the same values rather than making new ones.
- Copy them all, or download the batch as a text file.
What version 4 means#
A version 4 UUID is 122 random bits with six bits reserved to mark the version and variant. There is no timestamp, no MAC address, and no counter, so the value reveals nothing about the machine or moment that produced it.
That randomness is the whole safety argument. With 122 bits to draw from, a collision is not something anyone needs to design around, and no coordination between generators is required to avoid one.
The version selector on this page also offers version 7, which replaces the leading random bits with a millisecond timestamp so the values sort in the order they were made.
Version 5: the same name, the same UUID#
A version 5 UUID is not random at all. It is the SHA-1 hash of a namespace UUID followed by a name, cut to 128 bits with the version and variant marked. Give it www.example.com in the DNS namespace and you get 2ed6657d-e927-568b-95e1-2665a8aea6a2, here, in Python’s uuid module, or in PostgreSQL with uuid-ossp, today or in ten years.
That makes it the right choice when an id has to be worked out rather than stored: deriving a stable key for each customer email during an import, deduplicating records that arrive from two systems, or naming a resource the same way on every deploy. The namespace keeps names from different sources apart, so the same word in two namespaces gives two different UUIDs.
It is also the wrong choice for anything secret. Anyone who knows the namespace and can guess the name can compute the UUID, so a version 5 id in a URL can be enumerated in a way a random one cannot. Version 3 is the older form of the same idea built on MD5, and the standard recommends version 5 over it.
Where UUIDs go wrong as database keys#
Random UUIDs make poor clustered primary keys. Each insert lands at a random point in the index, which fragments it and slows writes as the table grows. In MySQL with InnoDB this shows up sharply.
The usual fixes are a time-ordered variant such as UUIDv7, or keeping an internal auto-increment key alongside a UUID exposed publicly. The second pattern buys you the thing people actually want from UUIDs: an id you can put in a URL without advertising how many records exist.
Formats you will be asked for#
Lowercase with hyphens is the canonical form and what almost everything expects. Uppercase appears in older enterprise systems, braces are a Microsoft convention, and the compact 32-character form, a UUID without dashes, turns up where a column is CHAR(32) or a filename cannot contain hyphens.
All four describe the same 128-bit value, and comparison is case-insensitive by specification. Normalising to lowercase on the way into a database saves you from having to care which form arrived.
Frequently asked questions#
Are these UUIDs truly random?
#
They come from crypto.getRandomValues(), which draws on your operating system’s cryptographically secure random generator, the same source used for encryption keys. In the rare browser without it, the page says so above the list.
Is a GUID the same as a UUID?
#
Yes. GUID is Microsoft’s name for the same 128-bit identifier, and a GUID from .NET or SQL Server is a UUID by another name. Windows tools often print it in braces or in uppercase, and the format menu here offers both. Case never changes the value, so a lowercase GUID in braces matches its uppercase twin.
Can I get UUIDs without dashes, or in uppercase?
#
Yes. The format menu offers lowercase, UPPERCASE, braced, and no hyphens, which gives the 32 hex digits run together. Switching it restyles the values already on the page rather than making new ones, so you can copy the same batch in two shapes.
Could two people get the same UUID?
#
Not in any practical sense. A version 4 UUID has 122 random bits; you would need to generate billions per second for decades before a collision became likely.
Are the generated values sent or stored anywhere?
#
No. They are created in your browser and exist only on this page until you copy them.
Which version does this generate?
#
Version 4 by default, the fully random variant. The version selector also offers version 5, which is made from a namespace and a name, and version 7, which is time-ordered.
Which namespace should I use for a version 5 UUID?
#
Match whatever the other system uses, because a different namespace gives a different UUID for the same name. The standard ones are DNS for domain names, URL for web addresses, OID for ISO object identifiers, and X.500 for distinguished names. Many applications define their own namespace, a random UUID chosen once and kept, so their ids cannot collide with anyone else’s. To use one, choose your own namespace in the list and paste its UUID.
Why does my version 5 UUID not match another tool?
#
Almost always because the name differs by something invisible. Each line is hashed exactly as typed, as UTF-8, so a trailing space, a capital letter, or a trailing slash on a URL all give a different UUID. Check the namespace too: www.example.com under DNS and under URL are two different ids. A version 3 UUID from the same name will never match, because version 3 uses MD5.
Should I use version 7 instead of version 4?
#
Use version 7 when the id is a database key. Its leading 48 bits are a millisecond timestamp, so new rows land at the end of the index rather than scattered through it, which is the write cost that makes version 4 a poor clustered key. Use version 4 when the id is public and should reveal nothing, because a version 7 value tells anyone who reads it when the record was created.
Can I generate a lot at once?
#
Up to 500 per batch. Click Generate again for another set. Each batch is independent. For version 5, paste up to 500 names, one per line, and each line gets its own UUID in the same order.