GUID Generator & Validator

Fast and Developer ready GUID Generator & Validator

Use our offline GUID Generator & Validator to create cryptographically secure Version 4 UUIDs. Validate up to 10,000 identifiers locally with zero server uploads.

GUID Generator & Validator

Seeding a database or wiring up test records that each need their own unique ID? Generate version 1 or version 4 UUIDs one at a time or in bulk, and paste an existing identifier to confirm it is correctly formed and see which version it is. UUIDs matter because they let separate systems create IDs that will not collide without asking a central server, and getting the format or version wrong causes subtle bugs later. The tool creates them locally using the browser crypto API, so you can spin up as many as a test run needs without a network round trip, and the validator explains why a malformed one is rejected rather than just failing. It suits developers seeding databases, testers building fixtures, and anyone integrating a system that expects a specific UUID version. Nothing is uploaded, and it works offline once loaded.

Copied to clipboard

🆔 ID Studio Pro

Generate, inspect and validate UUIDs, ULIDs, NanoIDs and other unique identifiers — entirely in your browser.

v3.0 🔒 100% Offline
0 generated
Paste a UUID above and it is decoded straight away.
FieldValue

Versions 1, 6 and 7 carry a creation time inside them, so the timestamp row shows a real date. Version 4 does not — it is random from end to end.

0 generated
0
Lines
0
Valid
0
Invalid

Which version should you pick?

v4 is 122 random bits and the safe default when you just need something unique and unguessable.

v7 starts with a millisecond timestamp, so generated values sort in creation order. That single property makes a large difference as a database primary key: v4 keys scatter across a B-tree index and cause page splits on every insert, while v7 keys append in order.

v1 and v6 also embed a timestamp. v1 places the time fields in an order that does not sort correctly as text; v6 rearranges the same data so it does.

Worth knowing: v1, v6 and v7 all reveal roughly when they were created. If an identifier is exposed publicly and that leak matters, use v4.

Related tools

🟢 Cryptographic Generation

Calculates mathematically secure random numbers to generate Version 4 identifiers with practically zero collision probability.

🔵 Regular Expression Validation

Executes complex regex parsing to instantly authenticate strings containing hyphens, braces, and standard hexadecimal formatting.

🟣 High-Volume Processing

Capable of calculating and formatting up to 10,000 unique 128-bit strings locally within a single execution cycle.

How to Use the GUID Generator & Validator
1
Select Operation

Choose between calculating new 128-bit identifiers or authenticating an existing list of hexadecimal strings.

2
Configure Syntax

Determine the exact output formatting by toggling hyphens, uppercase lettering, or surrounding braces.

3
Execute Engine

Specify your desired array length up to 10,000 items and trigger the local cryptographic number generator.

4
Extract or Authenticate

Download the generated array as a raw text file, or review the parsed results table to identify invalid strings.

Last Updated: August 2026

🔴 What Changed and Why

This page used to be a version 4 uuid generator with a validator attached. That covers the common case, but it left out the question people actually arrive with: which kind of identifier should I be using here? So the page now generates seven UUID variants plus five other identifier schemes, and it can pull a UUID apart to show you what is inside it.

Generate — pick the version that fits the job

Version 4 stays the default because it is the right answer most of the time: 122 random bits, no structure, nothing leaked. Version 7 is the one worth knowing about if you are choosing a database primary key, and the reason is worth spelling out.

A v4 UUID is random from the first character. Insert a million of them into an indexed column and each row lands at an unpredictable point in the B-tree, so the database keeps splitting pages and the index grows far larger than the data warrants. A v7 UUID starts with a 48-bit millisecond timestamp, so newly created rows sort to the end and append cleanly. Same uniqueness guarantee, very different write behaviour.

Generate ten of each and the difference is visible immediately. Ten v4 values look like noise. Ten v7 values share a common prefix that ticks upward:

019f75da-1b74-7000-a186-9d6b5d28ef0c
019f75da-1b74-7001-b2c4-3f8a1e5d7b90
019f75da-1b74-7002-8e13-6a2f9c4d1e58

Note the fourth group climbing 7000, 7001, 7002. That is a monotonic counter, not an accident. When several identifiers are created inside the same millisecond the timestamp alone cannot separate them, so the counter keeps the sort order intact. Generate all ten thousand at once and they still come out in order.

Inspector — read what is inside an identifier

Paste any UUID and the panel reports its version, its variant, the raw hex, the full 128-bit integer, and a base58 short form. For versions 1, 6 and 7 it also decodes the embedded timestamp into a readable date.

That last row answers a question that comes up more often than you would expect: when was this record actually created? If the ID is a v7 and the created_at column is missing or untrustworthy, the answer is sitting inside the key itself, accurate to the millisecond.

Other Formats — five schemes that are not UUIDs

🔵 ULID — 26 characters, timestamp first, sorts as plain text. Its alphabet drops I, L, O and U, so a generated value cannot accidentally spell something unfortunate and cannot be misread over the phone.

🟠 NanoID — 21 URL-safe characters by default, adjustable from 6 to 64. Shorter than a UUID with a similar collision profile, which is why it turns up in URLs and share links.

🟣 MongoDB ObjectID — 24 hex characters: four bytes of Unix seconds, five random bytes, then a three-byte counter.

🔵 Snowflake — a 64-bit number that fits a bigint column, which a 128-bit UUID does not.

🟠 Short UUID — an ordinary v4 encoded in base58, trimming 36 characters to roughly 22 without discarding a single bit.

Validate & Convert — bulk work

Paste a list and it counts valid against invalid, accepting hyphenated, bare hex, braced and quoted forms. Then convert the valid ones to canonical form, raw hex, a 128-bit decimal integer, base58, CSV rows or a JSON array.

🟡 Where People Get This Wrong

A UUID is not a secret

This is the mistake with real consequences. A v4 UUID is unguessable, which tempts people into using one as a password reset token or an API key. It is the wrong tool. It has no expiry, no revocation, no rate limiting, and it frequently ends up in server logs, browser history and referrer headers. For anything that grants access, use the Strong Password Generator or a purpose-built token scheme.

Time-based versions reveal their creation time

v1, v6 and v7 all carry a timestamp that anyone can read — the Inspector tab proves it in one paste. Usually harmless. Occasionally not: a public v7 identifier tells the world exactly when the account, order or document behind it was created, and sequential v7 keys in a URL make it trivial to estimate how many records exist. If either matters, v4 is the version to pick.

Storing UUIDs as text

A UUID stored as a 36-character string takes 36 bytes. The same value as binary takes 16. Across millions of rows that difference lands squarely on index size and query speed. Most databases have a native type for this — use it rather than a VARCHAR.

What this page does not do

🔵 Versions 3 and 5 are absent on purpose. They derive a UUID by hashing a name inside a namespace, which needs MD5 or SHA-1, and hashing has its own page here rather than being duplicated inside this one. See the Secure Hash Generator.

🟠 Real MAC addresses in v1 and v6 are impossible from a browser, which cannot read network hardware. The node field is filled with random bits and the multicast flag is set — exactly what the specification instructs implementations to do when no hardware address is available. The Inspector labels which of the two it found.

🟣 The CUID2 option produces a correctly shaped identifier from browser randomness, not the reference algorithm. It is good for seeding test data; for production, install the official library.

Honest limits

Generation is capped at 10,000 per run. It is a soft ceiling — the browser copes, but a textarea holding a hundred thousand lines becomes unpleasant to scroll on any device. For a larger batch, run it a few times and save each file. The v7 monotonic counter allows 4,096 values per millisecond; beyond that the timestamp rolls forward by one millisecond, so ordering holds either way.

🟢 The Reasoning Behind It

For the deeper background — how 128 bits produces a practical collision probability of zero, what the birthday problem actually says about it, and why the original MAC-address design became a privacy problem — there is a companion article: UUID and GUID explained: versions, collisions and safe use.

The current specification is IETF RFC 9562, published in 2024, which replaced RFC 4122 and introduced versions 6, 7 and 8. Browsers also ship a built-in v4 generator documented at MDN’s crypto.randomUUID reference.

❓ Frequently Asked Questions

Are these UUIDs generated on your server?

No. Every value comes from your browser’s own cryptographic random source. Nothing is sent anywhere, and no record of what you generated exists outside your tab.

Should I use v4 or v7?

v7 for database primary keys, because it sorts by creation time and keeps the index tidy. v4 anywhere the identifier is public and you would rather not reveal when it was made.

Can two UUIDs ever be the same?

In principle yes, in practice no. You would need to generate around 2.7 quintillion v4 values before a collision reached a one-in-a-billion chance.

Is a UUID safe to use as an API key?

No. It is unguessable but it never expires, cannot be revoked cleanly and leaks into logs and referrer headers. Use a token scheme designed for authentication.

Why does the tool not offer v3 or v5?

Both are name-based and require MD5 or SHA-1. Hashing lives in its own tool on this site rather than being repeated here.

What is the difference between a UUID and a GUID?

Nothing structural. GUID is Microsoft’s name for the same 128-bit value, which is why you often see it wrapped in braces in Windows tooling.

Why do my v1 UUIDs not contain my MAC address?

Browsers cannot read network hardware. The node field uses random bits with the multicast flag set, which is what the specification requires when no hardware address is available.

What is ULID good for?

Cases where you want v7’s time ordering but shorter, case-insensitive text. Its 26-character base32 form is easier to read aloud and to type by hand.

Does the 10,000 limit mean bigger batches are unsafe?

Not at all — it is a usability cap. Uniqueness and ordering hold at any size; a textarea with a hundred thousand lines simply becomes awkward to use.

Choose a language

Top Tools Ranking

Network Total Views
14,608
Tracking Since
Jul 9, 2026

Click any tool to open in a new window