GlobalKit

UUID Generator

Generate random (v4) or time-ordered (v7) UUIDs, up to 100 at once, and check what an existing UUID contains. Everything runs in your browser.

Random. The common default.

Between 1 and 100.

UUIDs are generated in your browser with the Web Crypto API. Nothing is sent anywhere.

Check a UUID

Hyphenated or 32 plain hex digits, in any case, with or without curly braces or a urn:uuid: prefix.

Enter a UUID to see its version, its variant and, for version 7, the timestamp it contains.

How it works

A UUID (called a GUID in Microsoft environments) is 128 bits, written as 32 hexadecimal digits in groups of 8-4-4-4-12. RFC 9562 (May 2024, which replaces RFC 4122) fixes two small fields inside those bits: the version, in the first digit of the third group, and the variant, in the first digit of the fourth group. This generator makes two versions.

Version 4 is random. The tool calls crypto.randomUUID(), which provides 122 random bits; the other six are the version (0100) and variant (10) bits. Where that function is missing (browsers limit it to secure contexts), the same layout is built from 16 bytes of crypto.getRandomValues. The non-cryptographic Math.random generator is never used.

Version 7 is time-ordered. The layout is big-endian:

BitsFieldContent
0–47unix_ts_msUnix epoch milliseconds
48–51ver0111 (version 7)
52–63rand_a12 bits, used here as a counter
64–65var10
66–127rand_b62 random bits

Inside one batch, the first UUID gets a random 12-bit counter in rand_a and every following one adds 1, so a batch is strictly increasing, also as text. If the counter would pass 0xFFF, the timestamp moves forward by one millisecond and the counter is seeded again, which means a very large batch can carry timestamps a few milliseconds ahead of your clock.

Ordering has limits. No state is kept between clicks. Two UUIDs made in the same millisecond by two separate calls may sort in either order, and a clock that goes backwards is not compensated. Read v7 order as "by millisecond", not as a creation sequence. The counter seed is random, so the 12 bits of rand_a are not a time fraction and carry no meaning on their own.

The checker

The second tool on the page reads the bits of any UUID you paste: hyphenated, 32 plain hex digits, in curly braces or with a urn:uuid: prefix, in any case. It reports the version, the variant (by the top bits of the first byte of the fourth group: 0xxx NCS, 10xx RFC 9562, 110x Microsoft, 111x reserved), whether the value is nil or max, and for version 7 the timestamp. It does not decode v1 or v6 timestamps, and it cannot prove how a value was produced.

Examples

ValueWhat the checker shows
017f22e2-79b0-7cc3-98c4-dc0c0c07398fVersion 7, RFC 9562 variant. The first 12 digits 017f22e279b0 are 1645557742000 ms, which is 2022-02-22T19:22:22.000Z (the RFC's own v7 example).
C232AB00-9414-11EC-B3C8-9F6BDECED846Version 1, RFC 9562 variant. No timestamp is shown. Normalized to lowercase.
919108f7-52d1-4320-9bac-f847db4148a8Version 4, RFC 9562 variant.
00000000-0000-0000-0000-000000000000Version 0, NCS variant, nil.
ffffffff-ffff-ffff-ffff-ffffffffffffVersion 15, variant reserved for future use, max.
{919108F752D143209BACF847DB4148A8}Accepted. Normalized to 919108f7-52d1-4320-9bac-f847db4148a8.
urn:uuid:919108f7-52d1-4320-9bac-f847db4148a8Accepted, prefix removed.

The same v4 value in the four output formats: 919108f7-52d1-4320-9bac-f847db4148a8 (default), 919108F7-52D1-4320-9BAC-F847DB4148A8 (uppercase), 919108f752d143209bacf847db4148a8 (no hyphens) and {919108f7-52d1-4320-9bac-f847db4148a8} (braces).

How the v7 counter behaves (fixed bytes, from the tool's tests): with a counter seed of 00a, three UUIDs in one millisecond start 017f22e2-79b0-700a, 017f22e2-79b0-700b and 017f22e2-79b0-700c. With a seed of fff, the second UUID overflows the counter and starts 017f22e2-79b1-7001: the timestamp moved by 1 ms and the counter was seeded again.

Things to watch for

Frequently asked questions

Last updated: 10/11/2026

Related tools