Values made on your device.

Two generators: identifiers and QR codes. Both compute their output in this browser from code you can read, which is the whole reason they are grouped together — a generator that calls a server is a generator that has seen what you generated.

🆔
UUID Generator
Cryptographically secure v4 UUIDs, in bulk.
Open the generator →
⬛
QR Code Generator
QR codes for URLs, text, WiFi and contacts — download PNG.
Open the generator →
🔒
Nothing is uploaded. UUIDs come from crypto.getRandomValues() in your browser. The QR matrix is built by a local encoder written for this site — not fetched as an image from a third-party service. Open your network tab while you use either one and watch: no request is made.

Why "generator" is a category worth separating

Most of the tools on this site transform something you already have. Generators are different: they create a value, and the value is often sensitive precisely because it is new — a WiFi password you are about to share, a contact card for a real person, a primary key that will identify a row forever.

That makes the usual free-tool bargain a bad one. A QR generator that renders the image server-side necessarily receives the payload first. For a link to your homepage that costs nothing. For WIFI:T:WPA;S:MyNetwork;P:hunter2;; it means your network credentials have been posted to a stranger's log file. Both generators here avoid the question by never making the request.

UUIDs

A UUID is a 128-bit identifier you can mint anywhere, without coordinating with a database or a central service, and still reasonably expect to be unique. That property is what makes offline-first and distributed systems workable: a client can create a record, give it an ID and sync it later without a round trip to find out what its key should be.

The versions on offer

VersionWhat it encodesUse it when
v4122 random bits and nothing elseAlmost always. It leaks no timestamp, no machine identity and no ordering.
v1A 60-bit timestamp, a clock sequence and a node IDOnly when something downstream reads the creation time back out of the ID.
NILAll zerosAs a deliberate "no value" sentinel in a UUID-typed column.

One detail worth knowing about v1 in a browser: there is no stable hardware address available to a web page, so the node field is random rather than a real MAC. RFC 4122 §4.5 requires the multicast bit to be set in that case, which this generator does — a randomly-generated node ID can then never be mistaken for, or collide with, a genuine network card.

Collisions, concretely

A v4 UUID has 122 random bits, or about 5.3 × 10³⁶ possible values. Reaching a 50% chance of a single collision takes roughly 2.7 × 10¹⁸ of them — at a billion per second, about 85 years. You can treat them as unique.

That guarantee rests entirely on the randomness being real. UUIDs built from Math.random(), which some libraries still do, have far less effective entropy and have caused duplicate keys in production. This generator uses the browser's cryptographic RNG, the same source used for key material.

QR codes

A QR code is just a payload plus error correction, arranged in a grid. The two knobs that matter are version, which sets the grid size from 21×21 up to 177×177, and error-correction level, which decides how much of the code can be obscured and still scan. They trade against each other: the same grid holds less data as you ask for more redundancy.

How much fits

Capacity at error-correction level M, as computed by this site's own encoder:

VersionGridDigitsAlphanumericBytes / UTF-8 text
121 × 21342014
1057 × 57513311213
25117 × 1172,3951,451997
40177 × 1775,5963,3912,331

And the cost of redundancy, at the largest version 40 grid:

LevelRecoverable damageBytes
L~7%2,953
M~15%2,331
Q~25%1,663
H~30%1,273

Level M is the right default for anything that will be read off a screen or a clean print. Go to Q or H for codes that will be printed small, stuck on something that gets handled, or overlaid with a logo in the middle — the redundancy is what lets a scanner recover from the part you covered up.

Keeping a code scannable

Frequently asked questions

Are the generated values sent anywhere?

No. Both generators compute their output in the page. UUIDs come from crypto.getRandomValues() in your browser, and the QR matrix is encoded by a local script rather than fetched as an image from a service. Nothing is transmitted and nothing is stored on a server.

Why does it matter that a QR code is generated locally?

Most free QR generators build the image on their own server, which means the payload travels to them. For a plain URL that is harmless. For a WiFi QR code it hands over your network password, and for a contact card it hands over someone's personal details. Encoding locally removes that step entirely.

Which UUID version should I use?

Version 4 for almost everything — it is 122 random bits and carries no information about when or where it was made. Choose version 1 only if something downstream needs to read the creation timestamp back out of the identifier.

How much data fits in a QR code?

At the largest size, version 40, the limit is 7,089 digits, 4,296 alphanumeric characters or 2,953 bytes at the lowest error-correction level. Higher error correction trades capacity for damage tolerance: the same version 40 code holds only 1,273 bytes at level H.

Is there a limit on how many UUIDs I can generate?

The generator produces up to 1,000 per batch and you can run as many batches as you like. There is no account, no quota and no rate limit, because there is no server involved to meter.

Related tools

Other tools that produce or inspect machine-readable values: