UUID Generator Online Free — v4, v1, v5 in Bulk

💻 Developer Tools ✔ Free Forever

UUID Generator Online Free

Generate UUID v1, v4, and v5 instantly. Bulk generate up to 1000 UUIDs at once, choose your format, validate existing UUIDs, and export as a list. Everything runs in your browser.

✔ UUID v1, v4, v5 ✔ Bulk generation ✔ Uppercase / lowercase ✔ UUID validator ✔ Export as list ✔ 100% browser based
Version
Count
UUID v5 requires a namespace and name
Validate a UUID
About This Tool

UUID v1, v4, and v5, generated to spec with real cryptographic randomness

Three UUID versions from RFC 4122 are implemented here, each with a genuinely different generation method, not just a different label slapped on the same random bytes. Version 4 uses the browser’s cryptographically secure random number generator. Version 1 encodes a real timestamp. Version 5 hashes a namespace and a name through SHA-1, implemented from scratch in plain JavaScript, so the same namespace and name always produce the identical UUID. Nothing is generated on a server; every byte is produced locally.

Version 4: random, and where the randomness comes from

The tool calls crypto.getRandomValues(), the Web Crypto API’s cryptographically secure random source, to fill 16 bytes. It does not use Math.random(), which is not specified to be cryptographically secure and should never back an identifier meant to be unguessable. Two bytes are then adjusted to encode the version and variant.

Fill 16 random bytes crypto.getRandomValues(new Uint8Array(16)) produces 128 bits of cryptographically secure randomness.
Stamp the version nibble Byte 6 is masked with 0x0f then OR’d with 0x40, forcing its high nibble to 4. This is the bit pattern that marks a UUID as version 4 to any parser that reads it.
Stamp the variant bits Byte 8 is masked with 0x3f then OR’d with 0x80, setting the two most significant bits to 10, which marks this as an RFC 4122 variant UUID (as opposed to the older, rarer NCS or Microsoft GUID variants).
Format as hex with hyphens The 16 bytes are converted to lowercase hex pairs and joined into the standard 8-4-4-4-12 grouping.
// v4 generation, unchanged from the tool source function uuidv4() { var bytes = new Uint8Array(16); crypto.getRandomValues(bytes); bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4 bytes[8] = (bytes[8] & 0x3f) | 0x80; // RFC 4122 variant return formatBytes(bytes); }

Version 1: time-based, with a real 100-nanosecond timestamp

Version 1 UUIDs embed the moment of creation. The tool takes Date.now(), converts milliseconds to 100-nanosecond intervals (the unit the UUID spec actually uses), and adds the fixed offset between the Unix epoch of 1970 and the UUID epoch of October 15, 1582, the date the Gregorian calendar was adopted. That combined 60-bit timestamp is then split across the time-low, time-mid, and time-high fields, with the version nibble stamped into the high field. The remaining bytes, which the full spec would derive from a MAC address and a clock sequence, are filled with secure random bytes here instead, since a MAC address is not something browser JavaScript has access to and should not be exposed even if it were.

Version 5: deterministic, via namespace and name

Version 5 is the only one that is not random at all. It takes a namespace UUID and a name string, UTF-8 encodes the name, concatenates it after the namespace’s 16 raw bytes, and runs the result through SHA-1. The tool implements the full SHA-1 algorithm by hand, message padding, the 80-round main loop, and the five working variables, entirely in JavaScript rather than pulling in the Web Crypto SubtleCrypto.digest API. The first 16 bytes of that 20-byte hash become the UUID, with the version nibble set to 5 and the variant bits set to the standard RFC 4122 pattern, same as the other two versions.

VersionSource of bytesDeterministic?
v1Timestamp (60-bit, 100ns units) + random bytes standing in for node/clock sequenceNo, changes every call
v4crypto.getRandomValues(), fully randomNo
v5SHA-1 hash of namespace bytes + UTF-8 name bytesYes, same inputs always produce the same UUID
The version character in the string is not decoration, it is a real structural marker. Any UUID’s third hyphen-separated group always starts with its version digit: a v4 UUID’s third group always begins with 4, a v5 UUID’s always begins with 5. The built-in validator checks exactly this along with the variant bits (the fourth group must start with 8, 9, a, or b) to determine and report which version a pasted UUID actually is, entirely from its structure, without needing to know how it was generated.

Formatting and bulk generation

Format options

Uppercase hex, hyphens stripped to a plain 32-character string, or wrapped in curly braces, the format Windows COM and some .NET APIs expect for GUIDs.

Bulk generation

Up to 1,000 UUIDs per batch, each generated independently with the same version logic, joined by newlines or commas.

Format validator

Checks a pasted string against four regex patterns (v1, v4, v5, and a generic pattern) to report which version, if any, it structurally matches.

RFC 4122 versions 1, 4, and 5 crypto.getRandomValues secure entropy Hand-rolled SHA-1 for v5 Up to 1,000 UUIDs per batch

UUID specifications and libraries

  • RFC 4122 is the specification defining every UUID version, field layout, and the version/variant bit patterns this tool stamps into each identifier.
  • MDN: Crypto.getRandomValues() documents the secure random source backing version 4 generation.
  • RFC 3174: US Secure Hash Algorithm 1 (SHA-1) is the hashing algorithm implemented by hand for version 5 UUIDs.
  • uuid (npm package) is the standard JavaScript library for server-side or Node.js UUID generation if you need this outside a browser context.

Where unique identifiers are needed

Generating primary keys for a new database table, creating unique request or trace IDs for logging and debugging, producing deterministic identifiers for the same resource across different systems using version 5 with a shared namespace, seeding test fixtures with realistic looking IDs, and validating that an ID pasted from a bug report is actually a well formed UUID before searching for it in a database.

Common Questions

FAQ: UUID Generator Online Free

Yes. No signup required and no limits. Generate as many UUIDs as you need, forever free.

UUID v4 is random and the most widely used. UUID v1 is based on the current timestamp, making it sortable. UUID v5 is deterministic: given the same namespace and name, it always produces the same UUID, which is useful for reproducible identifiers.

UUID v4 generation uses crypto.getRandomValues, the browser API backed by the operating system cryptographic random number generator. This is the same source used by security-sensitive software.

Yes. Enable the No hyphens option to get a compact 32-character hex string. Some databases and APIs prefer this format.

UUID v5 creates the same UUID every time for a given namespace and name. This makes it useful for content-addressed identifiers, deduplication, or anywhere you need a stable ID derived from a known input, like a URL or domain name.

Scroll to the Validate a UUID section, paste any UUID into the input field, and click Validate. The tool checks the format and reports which version it is.

Privacy Overview

Cookies let this site remember your preferences and show us which tools people actually use. Full detail sits in our Privacy Policy.