Skip to content

UUID generator (v4 and v7)

Runs in your browserNothing is uploadedThis runs entirely in your browser. Nothing is uploaded.

Generate unique identifiers in bulk — fully random v4, or v7 which sorts in creation order. Uppercase and hyphen-free forms are one toggle away.

Options

IDs
Values come from the browser’s cryptographic random source (crypto.getRandomValues).

Result

    Settingsv7, 5 of them, lower caseGenerated0199c1f2-6a10-7b3c-…0199c1f2-6a11-7c4d-…0199c1f2-6a12-7d5e-…Randomness comes from crypto.getRandomValues; nothing reaches a server.
    v4 is pure randomness, so sorting a list of them means nothing. v7 puts a timestamp at the front, so they sort in creation order — which keeps inserts from clustering when used as a database key.
    All tools

    Why this one

    From the cryptographic random source
    Values come from crypto.getRandomValues, not Math.random — the latter is predictable, which leaves room for identifiers to be guessed.
    v7 as well as v4
    v7 carries a millisecond timestamp in its leading bits, so values sort in creation order — a counter below the timestamp keeps even same-millisecond values in order. As a database key that keeps the index appending rather than scattering.
    Version and variant bits set correctly
    Thirty-two hex digits alone is not a UUID. The version and variant bits are set per spec, so strict validators accept the output.

    How to use it

    1. Pick a version

      If you have no particular need, v4 is fine. For database keys, v7 suits better.

    2. Set count and format

      Up to 50. Uppercase and no-hyphen match whatever you are pasting into.

    3. Take them

      Copy one at a time, or all of them — one per line.

    Terms and how to read them

    v4 versus v7
    v4 is 122 random bits. v7 puts the creation time (Unix milliseconds) in the leading 48 bits and randomises the rest. Choose v7 when order helps, v4 when order would reveal too much.
    Can they collide?
    In practice, no. Generating a billion v4 per second for 85 years gives roughly one collision.
    What about GUIDs?
    Same thing — GUID is the Microsoft name and the format is compatible. Some tools wrap them in braces; the value is unchanged.
    The 8-4-4-4-12 shape
    32 hex digits split into five groups by hyphens. The hyphens are part of the format rather than decoration, and some systems reject the bare 32 digits. In a database column, though, storing the 16 raw bytes takes less than half the space of the text form.
    When it replaces a sequence, and when it does not
    It suits anywhere several places need to assign numbers at once: no central allocator, no collisions. It suits human-facing numbers badly — nobody reads 32 hex digits down a phone line — so order numbers and reference codes are still better as short sequences.
    v1 versus v4
    v1 is built from the time and the network card MAC address, which identifies the machine that made it — not something to hand out publicly. If you want time ordering, v7 gives it without the MAC. That is why this tool does not offer v1.

    Questions

    Are generated values stored or sent?
    No. They are made in the browser and disappear when the page closes.
    Does v7 reveal when it was created?
    Yes — the timestamp is right there in the leading bits. Use v4 where that matters.
    Can I use one as a password?
    Not advisable. UUIDs are not treated as secrets and routinely appear in URLs and logs. Use the password generator when you need a secret.
    Does case matter?
    By the specification, generators emit lowercase and parsers accept either — so they are the same value. Systems that compare the text directly will disagree, though, so switch to uppercase only when the destination asks for it. Lowercase is the default here.
    Why is v7 faster as a database primary key?
    Because of how the index grows. v4 is fully random, so new rows land all over the index and pages split constantly. v7 leads with a timestamp, so new rows land at the end — closer to an append, which keeps writes cheap and fragmentation low.
    How many can I generate at once?
    Up to 50. Needing more than that in one go usually means a program is doing the generating rather than a person, and in that case calling your language’s own UUID function is more reliable than pasting from a page. Almost every language ships one.
    Sponsored links