UUID Generator
Generate v4, v7, nil and max UUIDs in the shape your database or config file expects.
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
- 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.
- 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.
- 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.
- 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.
- 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?
Should I choose v4 or v7?
How likely is a collision?
Can it produce v1, v3 or v5?
Can I paste a UUID in to validate or reformat it?
Is a v4 UUID acceptable as a token?
Why does Nil / Max return two lines when I asked for fifty?
Related tools
- JSON Formatter — Pretty-print, collapse and inspect JSON instantly.
- Base64 Encoder Decoder — Encode and decode Base64 text and files.
- JWT Decoder — Inspect the header, payload and claims of a JWT.
- Hash Generator — Compute MD5, SHA-1, SHA-256 and SHA-512 digests.
- Regex Tester — Test patterns against sample text with live matches.
- Unix Timestamp Converter — Convert between epoch seconds and readable dates.