Developer

UUID / GUID Generator

Generate universally unique identifiers with support for v1 (timestamp) and v4 (random).

Version

1
150100

No UUIDs Generated

Select your preferences and click "Generate" to create UUIDs

About UUIDs

What is a UUID?

A 128-bit number used to uniquely identify information. The probability of duplicates is extremely low.

Common Use Cases

  • Database primary keys
  • Session & transaction IDs
  • File identifiers

Two UUID versions, generated two different ways

The generator produces UUIDs in two of the format's several versions: v4, built from random values, and v1, built from the current timestamp. Both output the same visual shape — five groups of hexadecimal digits separated by hyphens, 32 hex characters total — but the bits inside those groups are derived completely differently, and which one to use depends on whether you need an identifier that reveals when it was created.

Version 4: where every bit but two comes from Math.random()

Every hex digit in a v4 UUID is drawn from JavaScript's Math.random(), except for two fixed markers: the first digit of the third group is always 4, marking the version, and the first digit of the fourth group is constrained to 8, 9, a, or b, marking the RFC 4122 variant. A generated UUID like a19b3486-0987-4b79-b79c-9f61f9fedd7a shows both: the 4 opening the third group, and the b opening the fourth. Because Math.random() is not a cryptographically secure random source, these UUIDs are suitable as unique identifiers but should not be relied on as unpredictable secrets — a session token or API key needs a CSPRNG, not this.

Version 1: timestamp-derived, but not a real MAC address

A v1 UUID packs the current time into its first three groups and sets its own version marker — 1 this time, opening the third group, as in 312e6dd0-a920-11f1-b48e-52d20c9b54ae. The fourth group carries a random clock sequence with the RFC variant bits set, and the fifth group — normally a network card's MAC address in the original v1 specification — is generated here as six random bytes instead, since a browser has no MAC address to read. The upshot: the version and variant markers are spec-correct and the value is time-derived, but the exact creation timestamp is not cleanly recoverable from the output the way a spec-pure v1 implementation would allow, and the trailing group is not a real hardware identifier.

Bulk generation and copying

The quantity slider generates between 1 and 100 UUIDs in a single batch, all of the selected version. Each row can be copied individually, or the whole batch can be copied at once as a comma-separated list — useful for pasting a set of test IDs directly into a spreadsheet column or a SQL VALUES clause.

When a UUID is — and is not — the right identifier

UUIDs solve a specific problem: generating unique IDs across multiple systems without a central counter or database round-trip, which is why they work well as primary keys in distributed systems, session or transaction identifiers, and file names that must never collide. They are a poor choice when you need a human-readable, sortable, or short identifier — a 36-character string sorts by nothing meaningful and no one will type one from memory — and v4 in particular should never stand in for a security token, since its randomness comes from Math.random(), not a cryptographic source.

Common use cases

Database primary keys

Generate v4 UUIDs as primary keys for records created independently across multiple services, with no need for a shared counter.

Test fixtures and seed data

Bulk-generate up to 100 UUIDs at once and copy them as a comma-separated list to paste straight into test data or seed scripts.

Session and transaction identifiers

Use v1 when a rough sense of creation order matters, or v4 when only uniqueness matters and no time signal should leak.

File and object naming

Generate collision-resistant identifiers for uploaded files or storage keys without checking against existing names first.

Frequently asked questions

What is the difference between the v1 and v4 UUIDs this tool generates?

v4 is built almost entirely from Math.random(), with only the version and variant bits fixed. v1 derives its first three groups from the current timestamp and generates the rest — clock sequence and node — randomly, since a browser has no real hardware MAC address to use.

Are these UUIDs cryptographically secure?

No, for v4 specifically — it uses Math.random(), which is not a cryptographically secure random number generator. Use these UUIDs as unique identifiers, not as unpredictable secrets like session tokens or API keys.

Can I recover the creation time from a v1 UUID this tool generates?

Not cleanly. The timestamp arithmetic exceeds JavaScript's safe integer range and gets truncated by a bitwise operation before being written into the UUID, so while the value is time-derived, extracting an exact timestamp back out is not reliable.

How do I identify the version of a UUID I already have?

Look at the first character of the third group (the one after the second hyphen) — 1 for version 1, 4 for version 4, and so on for other versions. The first character of the fourth group will be 8, 9, a, or b for any RFC 4122-variant UUID.

How many UUIDs can I generate at once?

Up to 100 in a single batch, all in the version currently selected. Switching versions with UUIDs already on screen regenerates the batch in the new version automatically.

How do I copy more than one UUID at a time?

Use Copy All, which joins every UUID in the current batch with commas — convenient for pasting into a spreadsheet column or a database seed script. Individual rows have their own copy button too.

Is a UUID the right choice for a short, user-facing ID?

Usually not. A UUID is 36 characters and carries no inherent order or readability; a shorter random string or an incrementing ID is a better fit when humans need to read, type, or compare the identifier.

What does the "node" portion of a v1 UUID represent?

In the original specification it is the generating computer's network card MAC address. Since a browser has no access to hardware identifiers, this generator fills that group with six random bytes instead — it is version-1-shaped, not a real hardware trace.

You might also like