Back

UUID generator

Crypto and hashing

Loading

Loading tool

Preparing the tool. The remaining time is not yet known.

All processing for this tool happens in your browser. Your input is not sent to a server.

About this tool

Keep the familiar UUID generator, starting with five secure v4 identifiers, or select v7 for a timestamp-prefixed batch. Inspect pasted UUIDs separately to check their spelling, variant, version and any supported encoded time. The tool works in your browser without uploading or saving inputs.

Common uses

  • Create 1–200 test identifiers and copy one UUID or the newline-separated batch.
  • Compare random v4 identifiers with v7 identifiers that group by their encoded millisecond, without assuming strict generation order.
  • Diagnose malformed UUID text, distinguish nil/max and legacy variants, or read an encoded v1, v6 or v7 timestamp.

How to use it

  1. 1.Leave v4 selected or choose v7, enter a whole-number quantity from 1 to 200, and generate. The initial quantity is 5. Copy a single accepted result or the complete generated batch.
  2. 2.For inspection, paste one UUID per line in the 8-4-4-4-12 ASCII hexadecimal format. Uppercase, lowercase and mixed case are accepted; results show lowercase canonical spelling. Run inspection and review each original line alongside its result.
  3. 3.Read format, variant, version and timestamp as separate facts. Fix rejected rows before using those identifiers. Editing generator settings or inspection input clears the corresponding old result, so copying cannot silently reuse stale output.

Executable UUID inspection examples

Normalize and inspect the RFC v7 test vector

017F22E2-79B0-7CC3-98C4-DC0C0C07398F
{"canonical":"017f22e2-79b0-7cc3-98c4-dc0c0c07398f","variant":"rfc9562","version":7,"unixMilliseconds":1645557742000,"utc":"2022-02-22T19:22:22.000Z"}

Paste this line into inspection. The output is a compact summary of the displayed fields. The generator uses fresh randomness, so generating v7 does not reproduce this fixed test vector.

Compare v1 and v6 representations of the same time

c232ab00-9414-11ec-b3c8-9f6bdeced846
1ec9414c-232a-6b00-b3c8-9f6bdeced846
{"version":1,"gregorianTicks":"138648505420000000","utc":"2022-02-22T19:22:22.0000000Z"}
{"version":6,"gregorianTicks":"138648505420000000","utc":"2022-02-22T19:22:22.0000000Z"}

These RFC examples encode the same 138648505420000000 Gregorian 100 ns ticks in different layouts. Each line is inspected independently; the summary preserves all seven fractional digits.

Keep v4 and custom v8 free of invented timestamps

919108f7-52d1-4320-9bac-f847db4148a8
2489e9ad-2ee2-8e00-8ec9-32d5f69181c0
{"variant":"rfc9562","version":4,"timestamp":null}
{"variant":"rfc9562","version":8,"timestamp":null}

Both strings have the RFC variant and a recognized version. null means that this inspector provides no timestamp interpretation; a custom v8 application may define its own fields.

Recognize nil and max before interpreting versions

00000000-0000-0000-0000-000000000000
ffffffff-ffff-ffff-ffff-ffffffffffff
{"special":"nil","variant":"ncs","version":null,"timestamp":null}
{"special":"max","variant":"future","version":null,"timestamp":null}

The all-zero and all-one sentinels retain their actual variant bits. Their version is not applicable; neither receives a fabricated timestamp.

Separate variant layout from the version-like nibble

00000000-0000-7000-0000-000000000001
00000000-0000-7000-c000-000000000001
00000000-0000-7000-e000-000000000001
00000000-0000-f000-8000-000000000001
{"variant":"ncs","version":null,"timestamp":null}
{"variant":"microsoft","version":null,"timestamp":null}
{"variant":"future","version":null,"timestamp":null}
{"variant":"rfc9562","version":15,"timestamp":null}

The first three UUIDs contain hexadecimal 7 in the version position, but are not RFC v7. The final UUID has the RFC variant and reserved version 15. All four have canonical spelling and no decoded timestamp.

Reject alternate spellings without silently repairing them

017f22e279b07cc398c4dc0c0c07398f
{017f22e2-79b0-7cc3-98c4-dc0c0c07398f}
urn:uuid:017f22e2-79b0-7cc3-98c4-dc0c0c07398f
{"ok":false,"code":"format"}
{"ok":false,"code":"format"}
{"ok":false,"code":"format"}

Compact, brace-wrapped and URN representations are rejected by this tool’s intentionally strict input policy. These format errors are per-line results; the accepted spelling requires ASCII hyphens and no extra characters.

Common UUID mistakes

  • Pasting blank rows, spaces, braces or a urn:uuid: prefix: provide one exact canonical string per line.
  • Expecting the 7 in a non-RFC variant to mean UUIDv7: variant layout must be checked first.
  • Treating v7 as a secret or a strictly increasing sequence: it exposes time and this generator uses random ordering within one millisecond.
  • Assuming a valid-looking or newly generated UUID is guaranteed unused: enforce any required uniqueness in your own application.

Limits and notes

  • Generation supports v4 and v7 only. v4 uses a browser CSPRNG with 122 random bits. This v7 implementation stores a 48-bit Unix millisecond timestamp plus 74 CSPRNG random bits; it uses no monotonic counter or sub-millisecond sequence. Values from the same millisecond have random ordering, and a clock rollback can produce a smaller value.
  • The quantity must be an integer from 1 to 200. Missing or failing secure randomness stops generation without a weak Math.random fallback or partial output. UUIDs are not passwords, authentication tokens or proof of secrecy; no global uniqueness guarantee, database reservation or collision lookup is provided.
  • Inspection accepts at most 200 lines and 12000 characters. LF and CRLF separate lines; one final line terminator is allowed, while blank rows and surrounding whitespace are invalid. Compact hexadecimal, braces, urn:uuid: prefixes, Unicode hyphens and non-ASCII hexadecimal are deliberately rejected. Over-limit input rejects the whole inspection.
  • Variant bits distinguish NCS, RFC 9562, Microsoft and future-reserved layouts. Nil and max are special values, not ordinary v0/v15 UUIDs. The RFC version field recognizes v1–v8 and reports unused/reserved values; a version-like nibble in another variant is not assigned RFC version semantics.
  • Time decoding is limited to RFC-variant v1/v6 (Gregorian 100 ns ticks) and v7 (Unix milliseconds). Exact v1/v6 tick counts and seven-digit UTC fractions retain 100 ns precision; the millisecond view is rounded down. v4, v8, other versions, non-RFC variants and nil/max have no interpreted timestamp. An encoded time can be fabricated and does not prove when a record was created. Processing makes no network request and persists no input.

Frequently asked questions

How do v4 and this v7 generator differ?

v4 is random apart from its fixed version and variant bits. v7 starts with the current Unix millisecond and fills its remaining payload with secure random bits. This tool does not maintain a monotonic counter. Sorting canonical v7 values groups increasing encoded milliseconds, but ties within one millisecond are random and clock rollback can reverse the order. Retain a database uniqueness constraint where your application needs one.

What does the v7 worked example decode to?

017F22E2-79B0-7CC3-98C4-DC0C0C07398F normalizes to lowercase, has the RFC 9562 variant and version 7, and contains Unix milliseconds 1645557742000: 2022-02-22T19:22:22.000Z. The timestamp is an encoded field, not a verified creation time.

Can a correctly formatted UUID still be unsupported or special?

Yes. All-zero nil and all-one max are identified explicitly. Legacy NCS/Microsoft and future-reserved variants can have correct canonical spelling without RFC version semantics. An RFC version nibble of 0 is unused and 9–15 are reserved; they do not become malformed text merely because their semantics are unavailable. v2 is identified as DCE Security, without decoding its layout.

Why is there no time for my v4 or v8 UUID?

v4 carries random data. v8 is application-defined, so this inspector cannot infer a universal timestamp from it. It decodes time only for RFC-variant v1, v6 and v7. Their fields describe a time value, not authenticity, ownership, uniqueness or a trustworthy audit event.

Related tools