UUID Generator

Generate v4, v7, nil and max UUIDs in the shape your database or config file expects.

Runs on your deviceDeveloperWorkingNo account needed

What this tool does

UUID Generator draws identifiers sixteen bytes at a time from crypto.getRandomValues, the browser's route to the operating system's random source, and returns up to 1,000 of them in a single run, one per line. A version 4 UUID spends six of its 128 bits on the version and variant markers the specification requires, which leaves 122 bits of randomness; nothing in the value records where or when it was made, and that is exactly why it is the default nearly everywhere a GUID is asked for.

Version 7 answers a different problem. RFC 9562 puts a 48-bit millisecond timestamp at the front and leaves the twelve bits after the version marker free; this tool spends them on a counter that starts at a small random number each new millisecond and climbs by one, so several minted inside the same millisecond still emerge in order. That leaves 62 random bits, not the 74 a v7 carries when those twelve are random too. Sorted as text, a batch comes out in creation order, and rows keyed on those values land beside each other in a B-tree index instead of scattering across it the way random keys do. The trade is that the creation time travels in the open: anyone holding a v7 value can read the millisecond it was made.

The third setting is not really a generator. Nil / Max returns the two fixed values the specification defines — the all-zero UUID and the all-one one — and returns both whatever count you set, because there is only one of each. They are useful as a deliberate placeholder for an identifier that does not exist yet, or as a sentinel at the end of a range. Every result, fixed or generated, comes out in the format you chose: lowercase or uppercase with hyphens, 32 hex characters with none, wrapped in braces for a Windows registry key or a .NET literal, or prefixed as urn:uuid: for XML and RDF. Format is one choice from five rather than a set of switches, so the braced, unhyphenated and URN shapes all arrive in lowercase; an uppercase GUID inside braces is not on the menu.

Two limits are worth knowing. Only these versions are produced: there is no v1, which would embed a MAC address and a clock sequence, and no v3 or v5, which hash a name inside a namespace and so need something fed to them rather than a die roll. The input box on this page is ignored outright, so a UUID pasted there is neither validated nor reformatted. And nothing is remembered between runs — uniqueness rests on the size of the random space, not on a check against a list, because no list is kept. The values exist only in this tab until you copy them; the work happens in your browser and the results are not uploaded.

How to use it

  1. Leave the input box alone. This is a pure generator. The text area is ignored on every run, and the settings panel is what actually drives the output.
  2. Pick a version. v4 for a plain random id, v7 when the values will be sorted or used as database keys, or Nil / Max for the two fixed constants.
  3. Say how many you need. Anything from 1 to 1,000 in one run; the field starts at 10 and is clamped to that range. Nil / Max ignores the number and returns its pair.
  4. Choose the output format. Lowercase with hyphens is canonical and the safest default. Plain gives 32 hex characters for a CHAR(32) column, braces suit Windows tooling, URN suits XML.
  5. Run, then copy. Results arrive one per line, so the whole block pastes straight into a seed file, a spreadsheet column or an INSERT statement.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

Assigning an id before the insert

The application mints the primary key itself, so a record carries its identity before the database has seen it and no round trip is needed to learn what it is.

Keys that do not fragment the index

v7 values arrive in ascending order, so inserts append to the end of an index rather than dirtying pages scattered all through it.

Correlating a request across services

One unique id per request, threaded through the logs of every service it touches, turns a scatter of unrelated lines into a single readable trace.

Seed and fixture data

Generate a fixed batch for test rows, sample payloads or a migration script, rather than typing plausible-looking hex by hand and repeating yourself.

A GUID for a registry key or a .NET attribute

The braces format matches what Windows tooling and Guid literals expect, so the value pastes in without being reshaped first.

Questions

Are the UUIDs sent anywhere?
No. They are produced in this browser tab and never transmitted or stored, which is why the page still works with the network switched off. Nothing is retained after a refresh, so copy what you need before navigating away.
Should I choose v4 or v7?
v4 unless the identifiers will be sorted or indexed. v7 buys creation order and kinder behaviour on insert, and costs you the privacy of the timestamp sitting in plain sight in its first 48 bits.
How likely is a collision?
A v4 value carries 122 random bits, so the odds of two matching are remote enough to be ignored in practice. That is a probabilistic argument rather than a check: this tool compares nothing against earlier runs, other browsers or your database.
Can it produce v1, v3 or v5?
No. v1 encodes a MAC address and clock, while v3 and v5 hash a name inside a namespace — feed those the same name and the same UUID comes back, which is a different job needing an input. Only v4, v7 and the nil and max constants are offered here.
Can I paste a UUID in to validate or reformat it?
No. The input box is ignored, so whatever sits in it makes no difference: a run always produces a fresh batch from the settings. Reformatting or checking an existing value is not something this tool does.
Is a v4 UUID acceptable as a token?
It is unpredictable, because the bits come from the operating system's cryptographic random source rather than a seeded pseudo-random one. A v7 value is a poor choice for that: 62 of its bits are random, and the rest is a readable clock followed by a counter that anyone can see stepping up by one down the batch. For a value meant as a secret rather than an identifier, Password Generator reports the entropy of what it makes.
Why does Nil / Max return two lines when I asked for fifty?
Because exactly one nil UUID and one max UUID exist. The count applies to v4 and v7 only; the fixed pair is always returned whole, in whichever format you selected.

Related tools