crypto
UUID generator
Generate RFC 4122 version 4 UUIDs on your device.
Runs 100% in your browser. Nothing you paste is uploaded, stored, or sent to a server.
How to use
- Choose how many identifiers you need (1–200) and click Generate.
- Each value is a version-4 UUID: random bits, with the version and variant nibbles set per RFC 4122.
- Copy one row or the whole list. The generator also validates a pasted identifier if you want a second opinion.
- Use the values as database keys, request IDs, or idempotency tokens.
A UUID v4 is 122 random bits dressed as 32 hex digits and four hyphens. Collision risk is negligible for ordinary application use, and the format is recognized by every major database and language. This generator fills those bits with crypto.getRandomValues, not Math.random.
Generating IDs locally means you can mint a batch for a migration script or a fixture file without calling an API that might log them. The validator checks the canonical 8-4-4-4-12 shape, a version nibble of 1–8, and a RFC 4122 variant nibble.
Examples
Version nibble
In 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d the first character of the third group is 4, marking a v4 UUID.
Variant nibble
The first character of the fourth group is 8, 9, a, or b. That is the RFC 4122 variant. Values starting with 0–7 or c–f are not.
Nil UUID
00000000-0000-0000-0000-000000000000 is reserved. The validator rejects it because the version nibble is 0.
v4 versus other versions
Version 1 embeds a timestamp and a node id. Version 5 is a SHA-1 name-based UUID. Version 7 (RFC 9562) is time-ordered and nicer to B-tree indexes. This page generates v4 only: it is the one you can mint offline with nothing but a CSPRNG, and it is what most APIs still document.
UUIDs are unique identifiers, not secrets. They can leak creation volume if you use a time-based version. v4 does not, but it also does not sort by time, so large Postgres tables may want ULID or UUIDv7 instead.
The generator never talks to a clock service or a MAC-address source. Refreshing the page does not replay the last batch.
FAQ
Is crypto.getRandomValues enough?
Yes for UUID v4. Browsers seed it from the OS CSPRNG. Do not use Math.random for identifiers that must not collide or be guessed.
Can I generate UUID v7?
Not in this version. v7 needs a millisecond timestamp and a defined layout. If you need time-ordered IDs, say so in a future request — the v4 tool stays simple on purpose.
Why is the nil UUID rejected?
It is a reserved value, not a generated identifier. If you need to detect empty keys, compare against it in code; do not treat it as valid input here.
Are generated IDs logged?
No. They exist only in the page memory until you copy them.