Skip to tool

Categories

Developer / Local utility

UUID generator

Generate one or many cryptographically random UUID v4 values in your browser.

On-device prototype

About the UUID generator

To generate UUIDs without uploading anything: open the OpenTools UUID generator, set how many you want between 1 and 100, and press Generate UUIDs. Each value comes from the browser's own cryptographic UUID function, which produces a random version 4 UUID, and they are listed one per line to copy or download.

Every value is version 4 and random: the tool calls the browser's cryptographic UUID generator and has no fallback to Math.random, so it either returns a proper random UUID or it reports a failure. The count must be a whole number between 1 and 100, and anything else is refused with "Choose between 1 and 100 UUIDs." Output is lowercase, hyphenated and one per line, with no options for braces, uppercase, a compact hyphen-free form, or the time-based and name-based versions 1, 3, 5 and 7. A test in this repository generates ten at a time and requires all ten to be distinct and to match the version 4 and variant bit pattern.

Questions people ask

What kind of UUID does it produce?
Version 4, the fully random kind, with the version nibble fixed to 4 and the variant nibble to one of 8, 9, a or b. A test in this repository checks exactly that pattern on generated values. Versions 1, 3, 5 and 7 are not offered, because those need a MAC address, a namespace and a name, or a timestamp, and this tool generates only random identifiers.
Are these safe to use as database keys or tokens?
They come from the browser's cryptographic random source, so they suit anywhere a random version 4 UUID suits: primary keys, correlation ids, filenames, idempotency keys. Version 4 UUIDs are random rather than sortable, so consecutive inserts will not sit next to each other in an index; if that matters for your database, a time-ordered scheme is the right answer rather than this tool.
Why can I only generate 100 at a time?
That is the limit the generator enforces, and it is checked before any value is produced: the count must be a whole number from 1 to 100 or you get "Choose between 1 and 100 UUIDs." For a larger batch, run it again; each run draws fresh random values and none is derived from a previous one.
Can I get them in uppercase or without hyphens?
Not from this tool. It returns exactly what the browser produces: lowercase hexadecimal in the 8-4-4-4-12 hyphenated form. Uppercase and hyphen-free variants are the same identifier written differently, so changing the case or stripping the hyphens afterwards does not alter the value.
Local JavaScript · No third-party trackers · Formal multi-browser egress proof pending

About this UUID generator

Generate cryptographically random UUID v4 and timestamp-ordered UUID v7 identifiers directly in your browser. Generate single UUIDs or batch export up to 500 identifiers with customizable casing (uppercase or lowercase) and hyphen separators.

This generator produces RFC 4122 (v4) and RFC 9562 (v7) Universally Unique Identifiers using the Web Cryptography API (crypto.getRandomValues and crypto.randomUUID). It supports both random v4 identifiers for distributed systems and modern v7 timestamp-ordered identifiers for database primary keys, ensuring sequential B-tree indexing without page fragmentation.

Runs in this tab — no uploadFree, no account, no watermark

Step by step

  1. 1Select UUID versionChoose Version 4 (cryptographically random) or Version 7 (Unix epoch timestamp-ordered with random entropy).
  2. 2Configure quantity and formattingSet the count (1 to 500), toggle uppercase or lowercase letters, and choose whether to include hyphens or generate raw 32-character hex.
  3. 3Generate identifiersClick Generate. Entropy is sampled directly from the browser cryptographic random number generator.
  4. 4Copy or export listCopy the complete list to your clipboard with one click, or download as a plain text file for database seeding.

Why UUID v7 is replacing UUID v4 in databases

While UUID v4 provides 122 bits of unpredictable random entropy, inserting random v4 values into database indexes (such as PostgreSQL B-trees or MySQL InnoDB clustered keys) causes severe index fragmentation and cache thrashing. UUID v7 embeds a 48-bit millisecond timestamp in the high-order bits, creating naturally ascending sequential values that optimize database write throughput while retaining distributed uniqueness.

Cryptographic random number generation

All random bits are generated using window.crypto.getRandomValues(), which seeds from hardware entropy sources provided by your operating system kernel (/dev/urandom, Windows BCryptGenRandom). Math.random() is never used, guaranteeing collision resistance suitable for security tokens and production database keys.

RFC 9562 and RFC 4122 compliance specifications

Every generated UUID adheres strictly to RFC standards. The 4-bit version field (bits 48 through 51) is set to 0100 for version 4 and 0111 for version 7. The 2-bit variant field (bits 64 and 65) is set to 10 to denote standard Leach-Salz variant compliance, ensuring seamless interoperability across programming languages and ORMs.

Sub-millisecond sequencing and counter overflow handling

When high-concurrency systems generate thousands of UUID v7 identifiers within the same millisecond, strict chronological ordering requires monotonic counter sequencing. Following RFC 9562 guidance, the generator increments the sub-millisecond precision counter bits, ensuring that database records created in rapid succession maintain perfect primary key ordering.

Zero upload security guarantee

Every response from this site is served with a Content Security Policy whose connect-src directive is set to none. That is not a promise in marketing copy; it is an instruction to your browser, and the browser is the one enforcing it. While this page is open it cannot open a connection to anywhere — not to this site, not to anyone else — so there is no path by which your document could be uploaded, not by a bug, not by a future change, not by a script that should not be here. e2e/egress-proof.spec.ts asserts the served header and then tries to send data out by every route a page has and requires each attempt to be refused, and it runs on every build.

The second half of the guarantee is that the code has nowhere to send anything from. lib/tools/local-source-policy.test.ts reads every source file under lib/tools, workers, components and app on every test run and fails the build if any of them contains fetch, XMLHttpRequest, WebSocket, EventSource, sendBeacon or a peer connection, or even a remote address written down in a comment. A tool here cannot acquire an upload by accident, because the file that would have to contain one cannot be committed.

Client-side processing limits

Computations run directly on your own device using WebAssembly, Web Workers, and modern browser APIs including Web Crypto and TextDecoder. There are no server queues, no background telemetry, and no temporary cloud files created. Large operations remain responsive by offloading heavy parsing and conversion tasks to dedicated worker threads, ensuring the browser UI never freezes during intensive document and data processing tasks.

Questions people ask

What is the probability of a UUID v4 collision?
Negligible. With 122 bits of random entropy, you would need to generate one billion UUIDs per second for roughly 85 years before having a 50% probability of a single collision.
Is UUID v7 backward-compatible with UUID v4 systems?
Yes. UUID v7 complies with RFC 9562 and shares the identical 128-bit structure and 8-4-4-4-12 hex layout as v4, allowing it to be stored in standard 16-byte UUID database columns.
What is the maximum bulk generation limit?
The interface allows instant generation of up to 500 UUIDs per batch to ensure smooth browser rendering without UI lag.
Are generated UUIDs tracked or stored on your servers?
No. All UUIDs are generated in local browser memory and are permanently discarded when you close or reload the browser tab.
Can I extract the creation timestamp from a UUID v7?
Yes. The first 48 bits (12 hex digits) represent the Unix millisecond epoch timestamp, allowing creation times to be decoded without secondary columns.