UUID Generator
Generate UUIDs in your browser — v4 (random), v7 (time-sortable), v1, or nil. Bulk generate up to 1000. Free, no signup, runs offline.
About UUID Generator
UUIDs (Universally Unique Identifiers) are 128-bit identifiers used as database keys, session tokens, message IDs, and anywhere you need a globally-unique reference without a coordinating server. This tool generates four variants in your browser.
Picking a version
- v4 (random) — 122 bits of cryptographic randomness. Default choice for IDs that shouldn’t reveal anything about creation order or origin (API keys, session tokens, magic links).
- v7 (time-sortable) — RFC 9562, ratified 2024. First 48 bits encode the timestamp; sorts naturally by creation time. Best choice for database primary keys (better index locality than v4).
- v1 (timestamp + node) — Legacy time-ordered format. Use only if a system you’re integrating with requires it.
- nil — All zeros. Sentinel value for “no UUID assigned yet”.
Format options
- Uppercase —
BEFB50AE-...instead ofbefb50ae-.... Some legacy systems (SQL Server’s UNIQUEIDENTIFIER, .NET) traditionally use uppercase. - Braces —
{...}wrapper. Required by some Microsoft tools (registry, COM/OLE GUIDs). - No hyphens —
befb50ae...32charsinstead ofbefb50ae-...-.... Common in URLs and JSON keys for slightly shorter strings.
Free, no signup, runs entirely in your browser.
Frequently asked questions
**v4** is fully random — 122 bits of entropy, no time component. Perfect for unguessable IDs like API keys, session tokens, or database primary keys where you don't want to expose creation order. **v7** (RFC 9562, 2024) embeds a 48-bit millisecond timestamp at the front, then 74 bits of random. Sorting v7 UUIDs naturally orders them by creation time — useful for database primary keys because adjacent rows land in adjacent index pages, improving INSERT performance versus v4.
v1 embeds a timestamp + a 'node' identifier (originally the MAC address) + a sequence counter. It's time-ordered like v7 but leaks the host machine's identity. Modern advice is: use v7 if you want time-sortable, use v4 if you want random. v1 is mostly legacy compatibility.
Yes when generated via `crypto.randomUUID()` or `crypto.getRandomValues()` — both call the browser's CSPRNG. This tool uses `crypto.randomUUID()` where available (modern browsers) and falls back to `crypto.getRandomValues()` otherwise. Both are suitable for security-sensitive use cases like session tokens, API keys, and password reset codes.
Browser JavaScript has no access to the MAC address — so the 'node' field is filled with random bytes (with the multicast bit set, per RFC 4122 §4.1.6, to flag it as locally-generated rather than a real MAC). The structure and time encoding are correct; only the node identifier is randomised. For applications that require a real MAC-based v1, generate them server-side.