Dev tools

UUID v4 generator

UUID v4 generator, random IDs from crypto.getRandomValues, nothing is uploaded.

Runs on your device. The file is never uploaded.

UUID v4 generator draws sixteen bytes from crypto.getRandomValues, then overwrites six of their bits to mark the version and the variant. Output is lowercase hex in the 8-4-4-4-12 grouping, one per line, five per run unless you change count. Only version 4 exists here, so nothing in an ID encodes a time or a namespace.

Options

Questions

Which UUID version does it generate?

Version 4, the random one, and only that. Sixteen random bytes are drawn from crypto.getRandomValues, then the version nibble is set to 4 and the variant bits to the RFC pattern. There is no v1, v5 or v7 option here, so nothing in the ID encodes a timestamp, a MAC address or a namespace.

What format is the output?

Lowercase hex in the standard 8-4-4-4-12 grouping with hyphens, one UUID per line. There are no braces, no uppercase variant and no URN prefix. Generate between 1 and 1000 at a time with the count option, which starts at 5.

Is the randomness good enough for security?

The bytes come from crypto.getRandomValues, the browser cryptographic random source, not from Math.random. That is the right source for tokens and keys. A v4 UUID still carries only 122 random bits, since six are fixed by the version and variant, which is ample for uniqueness and fine for a session or record identifier.

Will two of them ever collide?

In practice, no. Each is 122 random bits from the system generator, and nothing is seeded or reused between runs. Generating a thousand at once means a thousand independent draws, so duplicates inside a batch are not something you need to check for.

Do the UUIDs come from a server?

No. They are generated in a Web Worker in your browser and never leave it, so nothing is logged and nobody else has ever seen them. That matters for anything you intend to use as a secret, a reset token or a key rather than as a label.

Why did it refuse my count?

The count must be a whole number between 1 and 1000, and the message says exactly that. A decimal, a blank field or a bigger batch is refused. Run it again for more: each run draws fresh randomness, so there is no chance of repeating what came out last time.

Related Dev tools