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

Examples:

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.