Free · Browser-based · RFC 9562

UUID Generator

Generate UUIDs instantly in your browser. Create single or multiple UUIDs, copy them with one click, and validate UUID strings quickly.

  • v1 · v4 · v7
  • Nothing uploaded
  • Bulk up to 1000
  • Validator built-in
  • TXT & CSV export

UUID Generator

🔒 Runs locally in your browser

Ctrl/ + Enter to generate

Generated UUIDs

no identifiers yet

········-····-····-····-············

No UUIDs generated yet.

Choose a version and quantity, then generate your UUIDs.

Special identifiers

Nil UUID 00000000-0000-0000-0000-000000000000
Max UUID ffffffff-ffff-ffff-ffff-ffffffffffff

Both are fixed constants from RFC 9562 §5.9 and §5.10 — placeholders for “no identifier” and “highest possible identifier”, not generated values.

Recent generations

    Nothing yet. Each batch you generate is noted here.

    Only the count, version and time are stored on this device — never the identifiers themselves.

    Generate UUIDs in Seconds

    1. Pick a version

    Use v4 for random IDs, v7 for time-ordered database keys, or v1 for the classic time-based layout.

    2. Set quantity & format

    Choose 1–1000 UUIDs, uppercase or lowercase, hyphens, braces or urn:uuid wrapper.

    3. Generate

    Press Generate UUIDs or use Ctrl/⌘ + Enter. Every batch is duplicate-free.

    4. Copy or export

    Copy one row, copy the whole list, or download as TXT or CSV for import.

    What is this tool?

    This UUID generator creates universally unique identifiers in your browser. Pick a version (v1, v4 or v7), choose how many you need, and the tool produces a duplicate-free batch using the browser's cryptographically secure random number generator. You can reformat the output, copy one value or the whole list, export it as TXT or CSV, and paste any UUID into the validator to check it and read its version, variant and embedded timestamp.

    UUIDs are generated and processed locally in your browser. Nothing is uploaded, and generated UUIDs stay in your browser unless you explicitly copy or download them.

    UUID Validator

    Paste a UUID to check its structure. The validator inspects every hexadecimal digit and hyphen position — a 36-character string is not accepted just because it is the right length.

    Accepts the canonical form, the 32-digit compact form, braces and urn:uuid:. Press Esc to clear the field.

    Try an example:

    UUID Anatomy

    A UUID is 32 hexadecimal digits plus 4 hyphens — 36 characters in the standard textual form, encoding 128 bits. Select any group below to see what those bits mean for the version you are looking at.

    36characters
    32hexadecimal digits
    4hyphens
    128bits

    Those four numbers are the same for every UUID. How the 128 bits are used is what differs: v4 spends 122 of them on randomness, while v1 and v7 reserve part of the space for a timestamp, so the usable entropy is lower.

    UUID v1 vs v4 vs v7

    The three versions this tool generates, and what actually differs between them.

    Version Generation method Typical use Deterministic? Randomness / time based
    v1 60-bit Gregorian timestamp (100-ns units since 15 Oct 1582) + 14-bit clock sequence + 48-bit node ID. Legacy systems and formats that expect the classic time-based layout. No — the timestamp, clock sequence and node ID all vary. Mostly time based. Here the node ID is random with the multicast bit set, because a browser cannot read a hardware address.
    v4 122 random bits from the browser CSPRNG, plus fixed version and variant markers. General-purpose IDs: API resources, records, tokens, test data. No — every call produces an unrelated value. Fully random. Carries no timestamp and no machine information.
    v7 48-bit Unix millisecond timestamp + 12-bit counter + 62 random bits. Database primary keys, event and log IDs, anything you want to sort by creation time. No — but values created later always sort after earlier ones. Time based with a random tail. The best of both for indexed storage.

    Versions 2, 3, 5, 6 and 8 also exist. This tool does not generate them: v2 is barely specified outside DCE, v3 and v5 need a namespace plus a name to hash, v6 is a reordering intended for v1 migrations, and v8 is deliberately vendor-defined. The validator still recognises and reports all of them.

    What is a UUID?

    UUID stands for Universally Unique Identifier. It is a 128-bit value written as 32 hexadecimal digits in five hyphen-separated groups of 8-4-4-4-12, for example 550e8400-e29b-41d4-a716-446655440000. The current specification is RFC 9562, published in 2024, which obsoletes the older RFC 4122.

    The point of a UUID is that any machine can create one on its own and still expect it to be unique across every other machine, with no central registry, no database sequence and no network round trip. That property is what makes UUIDs the default identifier in distributed systems.

    How does a UUID work?

    Uniqueness comes from the size of the space rather than from bookkeeping. A version 4 UUID draws 122 random bits, which is about 5.3 × 1036 possible values. Version 1 and version 7 instead combine a timestamp with random or sequential bits, so two UUIDs produced at different moments differ by construction, and two produced in the same moment differ by their random tail.

    Six bits are always spoken for: four for the version, in the 13th hexadecimal digit, and two or three for the variant, at the start of the 17th digit. That is why the 17th character of a modern UUID is always 8, 9, a or b.

    UUID vs GUID

    GUID, short for Globally Unique Identifier, is the name Microsoft uses for the same 128-bit identifier family. For everyday purposes a GUID is a UUID: the same 32 hexadecimal digits, the same 8-4-4-4-12 grouping, the same version and variant fields.

    The differences are conventions rather than substance:

    • Microsoft tooling usually prints GUIDs wrapped in braces, as {550e8400-…}, and often in uppercase.
    • The classic Windows binary layout stores the first three fields in little-endian order, so the same value can appear byte-swapped when read from a raw buffer.
    • Some Microsoft-generated values use variant 2, the legacy Microsoft variant, rather than the RFC variant.

    So a GUID and a UUID are interchangeable in text form, but do not assume every GUID implementation matches RFC 9562 in every detail. Use the Braces wrapper above to produce GUID-style output.

    Are UUIDs truly unique?

    Not guaranteed — designed so that a collision is negligibly unlikely. For random v4 UUIDs, reaching a 50% chance of even one collision takes roughly 2.7 × 1018 values, which is about 86,000 years of generating a million UUIDs every second. Uniqueness also depends on the source of randomness: a weak generator can produce collisions far sooner, which is why this tool refuses to fall back to Math.random().

    What is a UUID used for?

    Anywhere an identifier has to be created without asking a central authority for it.

    Database primary keysRows can be created offline or on any shard without a shared sequence.
    API resource IDsPublic identifiers that reveal no row count and cannot be guessed by incrementing.
    Request & trace IDsFollow a single request as it crosses services and log files.
    Event identifiersDeduplicate messages in a queue when the same event is delivered twice.
    File & object namesStore uploads without collisions, whatever the original filename was.
    Session identifiersReference a session on the server without exposing sequential values.
    Distributed systemsIndependent nodes mint IDs concurrently and merge them later without conflict.
    Test dataFill fixtures and seed scripts with realistic, non-repeating identifiers.
    Idempotency keysLet a client safely retry a payment or write without duplicating it.

    How to generate UUIDs

    On this page:

    • Choose a version — v4 unless you have a reason to prefer time ordering.
    • Set the quantity, from 1 to 1000, or tap a preset.
    • Pick the letter case, hyphens and optional wrapper.
    • Press Generate UUIDs, or Ctrl/ + Enter.
    • Copy a single row, copy the whole list, or download TXT or CSV.

    In code:

    • JavaScript — crypto.randomUUID()
    • Python — uuid.uuid4()
    • Java — java.util.UUID.randomUUID()
    • Go — uuid.New() (google/uuid)
    • C# — Guid.NewGuid()
    • PostgreSQL — gen_random_uuid()
    • Linux shell — uuidgen

    How to validate a UUID

    Length alone proves nothing. A correct check confirms three things: exactly 32 hexadecimal digits, the hyphens sitting after the 8th, 13th, 18th and 23rd characters, and — if you care about the version — that the variant digit marks it as an RFC 9562 value.

    A canonical-form regular expression looks like this:

    ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$

    Normalise before you compare. Strip any {} or urn:uuid: wrapper, lowercase the digits and restore the hyphens, then compare the canonical strings — never the raw input. The validator above does exactly that and offers a one-click Normalize action.

    Reading the version yourself

    The version is the 13th hexadecimal digit — the first character of the third group. In 550e8400-e29b-41d4-a716-446655440000 that is 4. The variant lives at the start of the 17th digit, the first character of the fourth group.

    About this UUID generator

    Generate UUIDs directly in your browser without uploading your data. There is no backend, no database and no account — the page loads, and everything after that runs on your device. It works offline once loaded, and it works the same on desktop and mobile.

    Built for: API development · databases · testing and QA · distributed applications · general software development · learning how identifiers are structured.

    Security: every random bit comes from the Web Crypto API — crypto.randomUUID() where the browser provides it, otherwise crypto.getRandomValues(). Math.random() is never used. If a browser exposes neither API, the tool disables generation and tells you, rather than quietly producing weak identifiers.

    Frequently asked questions

    What is a UUID?

    A UUID is a Universally Unique Identifier: a 128-bit value written as 32 hexadecimal digits in five hyphen-separated groups, for example 550e8400-e29b-41d4-a716-446655440000. It is defined by RFC 9562, which replaced RFC 4122 in 2024.

    What is a UUID used for?

    Database primary keys, API resource identifiers, request and trace IDs, event IDs, file names, session identifiers and object IDs in distributed systems — anywhere a machine needs to create an identifier without coordinating with a central server.

    How do I generate a UUID?

    Choose a version and quantity above and press Generate UUIDs. In code, use crypto.randomUUID() in JavaScript, uuid.uuid4() in Python, UUID.randomUUID() in Java or gen_random_uuid() in PostgreSQL.

    What is UUID v4?

    Version 4 is generated from random data. Of its 128 bits, 122 are random and 6 are fixed markers for the version and variant. It carries no timestamp and no machine information, which is why it is the usual default.

    What is UUID v7?

    Version 7 starts with a 48-bit Unix timestamp in milliseconds, then 12 bits that separate UUIDs made in the same millisecond, then 62 random bits. Because the timestamp comes first, sorting v7 UUIDs also sorts them by creation time.

    What is UUID v1?

    Version 1 combines a 60-bit timestamp counted in 100-nanosecond intervals since 15 October 1582, a 14-bit clock sequence and a 48-bit node identifier. Classic implementations used the network card address as the node ID; a browser cannot, so this tool uses random node bits with the multicast bit set, as RFC 9562 §6.10 prescribes.

    How many characters does a UUID have?

    The standard textual form has 36 characters: 32 hexadecimal digits plus 4 hyphens. Without hyphens it is 32 characters, in braces 38, and as a urn:uuid: URN 45.

    How many bits does a UUID contain?

    128 bits, or 16 bytes. Four bits store the version and two or three store the variant, so the number of freely usable bits depends on the version.

    Is a UUID the same as a GUID?

    In everyday use, yes. GUID is Microsoft's name for the same family of 128-bit identifiers, and the text form is identical. Microsoft tools often wrap the value in braces, and older Windows APIs store the first three fields in little-endian byte order.

    Are UUIDs unique?

    They are designed so a collision is extremely unlikely, not mathematically impossible. Reaching a 50% chance of a single collision among random v4 UUIDs takes roughly 2.7 × 1018 values — about 86,000 years at a million per second.

    Can I generate multiple UUIDs at once?

    Yes. Enter any quantity from 1 to 1000, or use a preset. Every value in a batch is checked, so the list never contains a duplicate.

    Can I copy all generated UUIDs?

    Yes. Copy All places the whole list on your clipboard, one UUID per line, in the format you selected.

    Can I download UUIDs as TXT?

    Yes. Download TXT saves a plain text file with one UUID per line, named after the version, such as uuid-v4-list.txt.

    Can I download UUIDs as CSV?

    Yes. Download CSV saves a file with a single uuid column header followed by one UUID per row, ready to import into a spreadsheet or database.

    Can I validate a UUID?

    Yes. Paste any UUID into the validator. It checks the hexadecimal digits and hyphen positions rather than just the length, and reports the version, variant, input format and canonical form.

    How do I know which UUID version I have?

    The version is the 13th hexadecimal digit, the first character of the third group. It is only meaningful when the variant digit — the first character of the fourth group — is 8, 9, a or b.

    Is UUID v4 random?

    Yes, 122 of its 128 bits are random. This tool takes those bits from the browser's cryptographically secure generator, never from Math.random().

    Is UUID v7 time ordered?

    Yes. The leading 48 bits are a Unix millisecond timestamp. This tool also advances a 12-bit counter within a millisecond, so even a batch of 1000 stays strictly ordered.

    Are UUIDs generated securely in this tool?

    All random bits come from the Web Crypto API. If a browser does not expose crypto.getRandomValues(), generation is disabled and a message explains why, instead of falling back to a weak random source.

    Does the UUID generator send data to a server?

    No. Generation, formatting, validation and export all happen in your browser. Generated UUIDs stay in your browser unless you explicitly copy or download them.

    Can I use UUIDs as database IDs?

    Yes, and most databases have a native UUID type. Random v4 keys scatter inserts across a B-tree index, so for large write-heavy tables many teams prefer v7, whose time-ordered prefix keeps new rows together.

    Can I generate UUIDs offline?

    Yes. Once the page has loaded, no network connection is needed — nothing is fetched during generation.

    Can I generate UUIDs on mobile?

    Yes. The layout is fully responsive and copy and download both work in mobile browsers on Android and iOS.

    What does the UUID variant mean?

    The variant sits in the leading bits of the 17th hexadecimal digit and says which specification defines the layout. 8, 9, a or b means the RFC 9562 variant; 0–7 is the legacy NCS layout; c or d is the Microsoft layout; e or f is reserved.

    What is the Nil UUID?

    The Nil UUID is 00000000-0000-0000-0000-000000000000, with all 128 bits set to zero. Its counterpart, the Max UUID, has every bit set to one. Both are defined in RFC 9562 and are commonly used as placeholders.

    Need another batch?

    No sign-up, no upload, no waiting. Pick a version, set the quantity and generate.

    Back to the generator