UUID Generator: v4, v7, v5, ULID & NanoID
Generate UUIDs (v4, v7, v1, v6 and name-based v3, v5, v8), ULIDs and NanoIDs in bulk, and decode any UUID or ULID to see its version and timestamp.
Generate IDs
Decode a UUID or ULID
How to use it
Pick a type, choose how many you need (up to 1,000) and press Generate. For UUIDs, tick uppercase, no hyphens or braces; the same list is re-formatted rather than regenerated. Copy takes the whole list and Download .txt saves it one per line. Paste any UUID or ULID into Decode to see its version, variant, timestamp and the same 128 bits in the other format.
Which UUID version?
| Version | Built from | Sorts by time |
|---|---|---|
| 4 | 122 random bits | no |
| 7 | Unix milliseconds + 74 random bits | yes |
| 1 | 100 ns time since 1582 + clock sequence + node | no |
| 6 | v1’s fields reordered, time first | yes |
| 3, 5 | MD5 or SHA-1 of a namespace and a name | no |
| 8 | vendor-defined; here SHA-256 of namespace and name | no |
Use v4 when the ID must not reveal anything, and v7 for database
keys: new rows land at the end of the index. Random bits come from
crypto.getRandomValues, the browser’s secure generator. Within one
millisecond, v7 treats its random bits as a counter and adds a random step
(RFC 9562, section 6.2), so a batch sorts in the order it was made.
v1 and v6 here use a random node with the multicast bit set and a random clock sequence (RFC 9562, section 6.10), never your network card’s MAC address. IDs made in the same millisecond take the next 100 ns tick.
Name-based UUIDs (v3, v5, v8)
The same namespace and name always give the same UUID, which is handy for
turning URLs, e-mail addresses or keys from another system into stable IDs.
Enter one name per line. Names are hashed as UTF-8 exactly as typed, so
case and spaces matter. The standard namespaces are DNS
(6ba7b810-…), URL (6ba7b811-…), OID (6ba7b812-…) and X.500
(6ba7b814-…); any UUID can serve as a custom one. Prefer v5 (SHA-1)
over v3 (MD5). The v8 option follows RFC 9562 Appendix B.2 and uses
SHA-256: www.example.com in the DNS namespace gives
5c146b14-3c52-8afd-938a-375d0df1fbf6.
The nil UUID is all zeros, often meaning “no ID”. The max UUID is all
f, a sentinel such as “end of the list”.
ULID
A ULID is 128 bits like a UUID: a 48-bit millisecond timestamp and 80 random
bits, written as 26 characters of Crockford’s Base32 (no I, L, O or U), such
as 01ARZ3NDEKTSV4RRFFQ69G5FAV. ULIDs sort by time as text. Within one
millisecond each ULID is the previous one plus 1 (the monotonic mode of the
spec). The decoder converts a ULID to UUID form for databases with a uuid
column, and back.
NanoID
NanoID makes short random strings from any alphabet. The default, 21 URL-safe characters, carries 126 random bits, about as many as v4. Pick a preset or type your own characters. Characters are chosen by rejection sampling, so each is equally likely even when the alphabet size is not a power of two. The page shows the bits per ID and roughly how many IDs give a 1% chance of any two being equal.
A GUID is Microsoft’s name for a UUID. Windows stores the first three groups little-endian in binary, but the text form is the same.
Frequently asked questions
Can two generated UUIDs ever be the same?
In theory yes, in practice no. A v4 UUID has 122 random bits, so you would need about 2.7 quintillion (2.7 × 1018) of them for a 50% chance of a single repeat. v7 IDs can only clash within the same millisecond, and within one batch from this page each is larger than the one before.
Why does my v5 UUID differ from another tool's?
Check the namespace, and that the name matches byte for byte. www.example.com and www.example.com (trailing space) or WWW.example.com give different UUIDs. Some tools also hash the name in another encoding than UTF-8.
Can I find out when a UUID or ULID was created?
Yes for v1, v6, v7 and ULID, which store a time; paste one into the decoder. v4 and NanoID are pure randomness, and v3, v5 and v8 name-based IDs are hashes, so they contain no date.
Should I use UUID v7 or ULID?
Both put a millisecond timestamp first. Use v7 when your database or language has a UUID type, and ULID when you want a shorter, case-insensitive string. The decoder converts one form into the other.
Are these IDs generated on a server?
No. They are created in your browser with the Web Crypto API, and the decoder also runs locally. Nothing is uploaded, logged or stored.