{{ uuid }}
ℹ️ About UUID Generation
A UUID (Universally Unique Identifier), called a GUID in Microsoft systems, is a
128-bit value written as 32 hexadecimal digits in the 8-4-4-4-12 shape defined by
RFC 9562 (formerly RFC 4122),
for example 550e8400-e29b-41d4-a716-446655440000. The first digit of the third group is the version
and the first digit of the fourth group (8, 9, a or b) is the
RFC variant. UUIDs need no central coordination, which makes them common as database keys, request and correlation
IDs, idempotency keys, file names and test fixtures.
This tool generates UUID v4 (random) and UUID v1 (time-based) identifiers in batches of up to 100, formats them as lowercase, uppercase, hyphenless or brace-wrapped GUIDs, and decodes the embedded timestamp of a single v1 result. To check or decode an existing UUID use the UUID Validator.
Supported inputs
- Version: 4 (random) or 1 (time-based), chosen with the Version buttons or the API field
version(1or4, default4). Any other value is rejected; the API answers with HTTP 400 and a generic error message. - Quantity: 1 to 100 UUIDs per batch. The page offers 1, 5, 10, 25, 50 and 100; the API field
quantityaccepts any integer from 1 to 100 (default1) and rejects anything outside that range. - Formatting:
hyphens(default on; off gives the 32-digit compact form),uppercase(default off) andbraces(default off; wraps each UUID in curly braces). On the page the checkboxes reformat the current batch instantly without generating new values; the API takes them in theformattingobject. - No text input: there is no seed, namespace, name or custom timestamp. v1 always uses the current clock and v4 always uses fresh random data.
Output
The page lists the formatted UUIDs one per line in generation order, each with its own copy button; Copy All copies
them newline-separated and Download saves them as uuids-v<version>-<quantity>.txt. When
the quantity is 1 an analysis panel shows the version, the RFC 4122 variant and, for v1, the decoded timestamp as
ISO 8601 UTC. The API returns success and a result object with version,
quantity, rawUuids (canonical lowercase, hyphenated) and formattedUuids
(the same values with the requested formatting applied, in the same order).
Example
The tool takes no UUID as input, so the values below only illustrate the formatting step. With hyphens off,
uppercase on and braces on, a generated v4 UUID whose canonical rawUuids form is
550e8400-e29b-41d4-a716-446655440000 would appear in formattedUuids as
{550E8400E29B41D4A716446655440000}. A v1 UUID minted at 2024-01-01T00:00:00 UTC starts with
b4cc8000-a838-11ee-, and the analysis panel decodes those three time fields back to
2024-01-01T00:00:00.000Z; the last two groups hold the random clock sequence and node, so they differ
on every run.
Limitations
- Only versions 1 and 4 are generated: no name-based v3/v5, no time-ordered v6/v7, no custom v8, and no Nil or Max UUID. The Random Number Generator produces v4 and v7 from a cryptographic source, and the UUID Validator decodes v1, v6 and v7 timestamps.
- Random bits come from JavaScript
Math.random(), in the browser and in the server-side Node.js bridge alike, not from a cryptographic generator. Treat generated UUIDs as identifiers, never as passwords, bearer tokens, session secrets or keys. - v1 values use a fresh random 48-bit node and a random clock sequence for every UUID instead of a stable hardware address and a counter, and the multicast bit that RFC 4122 requires on random node IDs is not forced. The timestamp has millisecond resolution, so UUIDs minted in the same millisecond share their time fields and differ only in the two random groups.
- v1 exposes its creation time to anyone who decodes it. Avoid v1 when the generation time itself is sensitive metadata.
- Uniqueness is probabilistic. Batches are not checked for duplicates, and a UUID is not proof of identity, authorization or data integrity.
Browser or server processing
The page loads the compiled logic module (uuid-generator.logic.js) and generates, formats and decodes
everything in your browser; no request is made while you use it. The public API
POST /api/tools/crypto/uuid runs the same module on the server through the Node bridge, so only direct
API callers send anything to the server, and that request carries nothing but the version, quantity and formatting
options.
FAQ
Are UUID v4 values unique enough?
A v4 UUID carries 122 random bits, so with ideal randomness you would need about 2.7 quintillion of them before a
collision becomes as likely as not; for ordinary datasets duplicates are not a practical concern. This page draws
those bits from Math.random(), which is fast but not cryptographic, so do not rely on the values being
unguessable, and add a unique constraint in the database if a collision would be harmful.
Is the UUID generated in my browser?
Yes. The logic module runs locally, so generating, reformatting, copying and downloading never contact the server, and the page keeps working offline once loaded. Only a direct call to the API endpoint is processed server-side.
Why do UUID v1 values not sort by creation time?
v1 stores the low 32 bits of the timestamp in the first group and the high bits in the third group, so string order does not follow time order. Read the timestamp from the single-UUID analysis panel or the UUID Validator, or use a time-ordered v7 UUID when you need sortable keys.
Can I generate UUID v7 or v5 here?
No. This page and its API accept only version 1 or 4 and reject other values. For v7 use the UUID
mode of the Random Number Generator; name-based v3 and v5 UUIDs are not produced by this tool.
References
- RFC 9562: Universally Unique IDentifiers (UUIDs), the current specification that supersedes RFC 4122
- RFC 4122: A UUID URN Namespace, the legacy v1 to v5 layouts most software still cites
- Microsoft GUID structure, the Windows field layout used by many APIs and registries
- ECMAScript Math.random, the pseudo-random source used by this generator
API Usage Example:
POST /api/tools/crypto/uuid
Content-Type: application/json
{
"version": 4,
"quantity": 5,
"formatting": {
"hyphens": true,
"uppercase": false,
"braces": false
}
}