UUID Generator Guide: v4, v7, Namespaces and GUID Formats
ToolMellow ·
A UUID is a 128-bit identifier with defined version and variant conventions. ToolMellow generates v1, v3, v4, v5, v6 and v7, plus the fixed Nil and Max values. Choose UUID version and UUID format, configure the batch or name list, then press Generate UUIDs. Generation runs locally in a browser worker.
The versions answer different needs: random identifiers, time-oriented identifiers or repeatable namespace-and-name identifiers. This guide explains the implemented options and important limits. A UUID is not automatically an authorization token, a password, a globally verified unique value or proof of a real-world event time. Examples below are fixed illustrations rather than newly assigned production identifiers.
How to generate a UUID or batch
Open UUID generator, choose UUID version and UUID format, and optionally enable Uppercase UUIDs or JSON array output. The default version is v4. For random, time-based, Nil or Max modes, choose an integer Amount from 1 to 1,000. For v3 or v5, enter names and choose a namespace instead; Amount is not used for name-based output.
Press Generate UUIDs and review the version, representation and resulting values before copying or downloading. Changing input or an option invalidates the old result. Wrap lines affects display only. UUID has no Use result as input action; copy values manually if another application needs them.
- Use the version expected by your application rather than switching versions just because another output looks preferable.
- Keep namespace and name-representation rules documented when repeatability matters.
- Retain format and clock conditions for time-oriented IDs; do not treat a UUID as an authentication decision.
Choose among v1, v3, v4, v5, v6 and v7
RFC 9562 is the current UUID standard and supersedes RFC 4122. ToolMellow provides the six versions below, plus two special constants. It does not generate version 2 or custom version 8 layouts. Changing the textual format does not change a UUID’s version or underlying identifier bits.
The version identifies a construction, not a promise of global uniqueness, secrecy or compatibility with every consumer. A database or protocol can have its own accepted versions and representation requirements. This page generates identifiers; it does not query a registry, connect to a database or benchmark indexing performance.
| Mode | Construction in this tool | Useful boundary |
|---|---|---|
| v4 | Cryptographic randomness | Random ID, not a timestamp or automatic secret-token system |
| v7 | Unix-time field with library counter/random fields | Time-oriented, with ordering limited by clock and worker scope |
| v1 | Gregorian timestamp, clock sequence and random node field | Exposes time; this implementation does not read a device MAC |
| v6 | Reordered Gregorian timestamp and random node/sequence fields | Time placed earlier than v1; storage rules still matter |
| v5 | Namespace and exact UTF-8 name using SHA-1 | Deterministic, not keyed authentication |
| v3 | Namespace and exact UTF-8 name using MD5 | Deterministic legacy construction, not password storage |
| Nil | All-zero fixed UUID | Repeated constant, not a fresh unique allocation |
| Max | All-one fixed UUID | Repeated constant, not a fresh unique allocation |
RFC 9562: Universally Unique Identifiers, layouts, namespaces and examplesuuid.js 14.0.2: UUID generation APIs and state handling
UUID layout, version, variant and GUID terminology
A standard textual UUID has 32 hexadecimal characters and four hyphens: 8-4-4-4-12 groups, totaling 36 characters. For ordinary generated versions here, the first hexadecimal character of the third group identifies the version. The variant bits affect the start of the fourth group, commonly 8, 9, a or b. Nil and Max are special cases, not requests for ordinary v0 or v15 generation.
GUID is commonly used terminology for a UUID-style identifier. ToolMellow’s Braces · GUID option adds braces to the textual value; it does not produce a Windows binary structure or change byte order. Uppercase changes hexadecimal letter presentation only. A syntactically plausible string alone does not prove who generated it or authorize access.
RFC 9562: Universally Unique Identifiers, layouts, namespaces and examples
UUID v4: random identifiers and collision limits
A normal v4 UUID reserves version and variant bits and uses randomness for the other 122 bits. The tool requires cryptographic random values support for its random/time generation paths. Its library may use native crypto.randomUUID for v4 when available, or its cryptographic random-values implementation otherwise. There is no Math.random fallback.
Random generation makes accidental collisions unlikely under appropriate assumptions, but does not guarantee that every ID is globally unused. The tool performs no external duplicate check. If uniqueness is essential to an application, use its actual allocation and storage rules rather than assuming one browser-generated value is a global reservation.
RFC 9562: Universally Unique Identifiers, layouts, namespaces and examplesuuid.js 14.0.2: UUID generation APIs and state handlingW3C Web Cryptography API: Cryptographic random values
Time fields, device clocks and batch ordering
v1 and v6 use Gregorian timestamp layouts expressed in 100-nanosecond units; v6 reorders timestamp fields. This browser implementation bases time on a millisecond device clock, so the layout’s unit does not prove 100-nanosecond measurement accuracy. v7 starts with Unix milliseconds and combines library-managed sequence/counter and random fields; those remaining bits are not all independently random in this implementation.
The worker’s library manages clock/counter state within the generation job, including v7 handling of repeated or rolled-back clock values. Each generation run gets a fresh worker, so that state is not shared across clicks, tabs or devices. A decoded timestamp can reflect library clock handling rather than an authoritative wall clock. There is no cross-batch or distributed monotonic-order guarantee, and unsupported device-clock values are rejected.
RFC 9562: Universally Unique Identifiers, layouts, namespaces and examplesuuid.js 14.0.2: UUID generation APIs and state handlingWHATWG HTML: Workers and their lifecycle
What UUIDs can reveal about time and identity
v1, v6 and v7 expose time-related information. In this tool, v1 and v6 use random node fields rather than reading your network adapter’s MAC address. That distinguishes this implementation from another UUID implementation that may choose a different node source. It does not make time-based values anonymous.
v4 has no defined creation-time field, while v3 and v5 can reveal relationships through repeated namespace/name inputs or candidate guessing. None of these values automatically proves identity, secrecy or ownership. Avoid putting sensitive real names in shared examples, and design application authorization independently of the identifier format.
RFC 9562: Universally Unique Identifiers, layouts, namespaces and examplesuuid.js 14.0.2: UUID generation APIs and state handling
Name-based v3/v5: literal lines and repeatability
For v3 or v5, the name editor treats each CRLF, CR or LF-separated line as one name. Empty lines, trailing empty names, spaces, case and duplicate lines are retained. A blank editor therefore produces the UUID of one empty name rather than a zero-item batch. Amount does not control these modes; the limit is 1,000 name lines and 1,000,000 UTF-16 input units.
The same version, namespace and exact UTF-8 name reproduce the same UUID. The tool rejects unpaired surrogates and does not normalize Unicode or trim a name. Visually similar normalized forms or a trailing space can change the byte input. MD5 and SHA-1 here implement standardized name-based UUID constructions; they are not password hashes, encryption or keyed authentication.
RFC 9562: Universally Unique Identifiers, layouts, namespaces and examplesWHATWG Encoding: UTF-8 and text decodingECMAScript: String isWellFormeduuid.js 14.0.2: UUID generation APIs and state handling
DNS, URL, OID, X.500 and custom namespaces
Namespace selects a UUID value used with each name. DNS is the default, and URL, OID and X.500 provide the other predefined constants below. The preset label does not perform DNS resolution, fetch a URL, normalize a domain, validate an OID or parse an X.500 distinguished name. This tool passes literal UTF-8 name text to the selected UUID construction; follow any additional representation rules required by your application.
Custom UUID requires a valid standard hyphenated namespace UUID. Uppercase hexadecimal is accepted, and library validation also accepts Nil and Max as namespace values. Compact, braced and URN forms are not accepted in that namespace field. Clear resets the custom namespace back to the default DNS selection; it does not change the previously downloaded values.
| Preset | Namespace UUID |
|---|---|
| DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 |
| URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 |
| OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 |
| X.500 | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 |
RFC 9562: Universally Unique Identifiers, layouts, namespaces and examplesuuid.js 14.0.2: UUID generation APIs and state handling
Known DNS namespace examples
With the DNS namespace and the exact name www.example.com, the standard lowercase values below reproduce the RFC name-based examples. DNS selection does not cause a network lookup. An uppercase domain string is not silently lowercased by this tool; it is a different literal name input.
Use these fixed examples to check the selected version and namespace before investigating your real naming convention. Repeated lines produce repeated values in v3/v5. The deterministic result is useful for the agreed input convention, but is not evidence of collision resistance for every use or a certificate of ownership of the name.
| Version | Exact name | Standard output |
|---|---|---|
| v3 | www.example.com | 5df41881-3aed-3515-88a7-2f4a814cf09e |
| v5 | www.example.com | 2ed6657d-e927-568b-95e1-2665a8aea6a2 |
RFC 9562: Universally Unique Identifiers, layouts, namespaces and examples
Standard, compact, braces, URN and JSON output
The format selector changes representation, not UUID bits. The table shows one fixed v5 value in four formats. Uppercase UUIDs changes its hexadecimal letters, while the URN prefix stays urn:uuid:. Ensure the receiving system accepts the chosen spelling; this formatter does not perform binary GUID serialization or database conversion.
JSON array output creates an indented array of strings in the chosen format; otherwise values are separated by newlines. Download saves toolmellow-result.json when JSON is selected, or toolmellow-result.txt otherwise. Both are UTF-8 text downloads. Options changes invalidate the old result, so generate a new result after selecting its format.
| Format | Characters for one value | Example |
|---|---|---|
| Standard | 36 | 2ed6657d-e927-568b-95e1-2665a8aea6a2 |
| Compact | 32 | 2ed6657de927568b95e12665a8aea6a2 |
| Braces · GUID | 38 | {2ed6657d-e927-568b-95e1-2665a8aea6a2} |
| URN | 45 | urn:uuid:2ed6657d-e927-568b-95e1-2665a8aea6a2 |
RFC 9562: Universally Unique Identifiers, layouts, namespaces and examplesuuid.js 14.0.2: UUID generation APIs and state handling
Nil, Max and what validation does not establish
Nil is 00000000-0000-0000-0000-000000000000; Max is ffffffff-ffff-ffff-ffff-ffffffffffff. They are fixed special values. Choosing an Amount of two for either produces the same constant twice, not two newly unique IDs. They should not be confused with a random value or an ordinary generated version.
A valid UUID syntax or matching version/variant pattern does not establish that the value is unallocated, secret, issued by an authorized party or safe as an account capability. Name-based values are predictable from the naming inputs; time-based values reveal time. The tool provides no uniqueness registry, login-token lifecycle, digital signature or UUID authentication service.
RFC 9562: Universally Unique Identifiers, layouts, namespaces and examples
Limits, browser capabilities and troubleshooting
For random/time/Nil/Max modes, Amount must be an integer from 1 to 1,000. Name modes limit lines separately and use a total one-million UTF-16-unit input ceiling. Local text-file loading rejects files at or above 4,000,000 bytes and text over the input ceiling. File.text() strips a leading UTF-8 BOM and replaces malformed UTF-8, and browser editing can affect line endings; imported text is not a raw byte-preserving naming source.
Random/time modes need crypto.getRandomValues. Native randomUUID has a secure-context requirement, but the library can use cryptographic random values without it; name-based and fixed modes need neither random values nor crypto.subtle. Do not carry the SHA text tool’s blanket capability message over to every UUID mode. Worker/browser availability and platform restrictions can still prevent generation.
| Symptom | Useful next check |
|---|---|
| Invalid namespace | Use a valid 36-character hyphenated UUID in the custom field |
| Unexpected repeated v3/v5 result | Check duplicate, empty and exact same namespace/name input |
| Wrong name-based output count | Each line is a name; a trailing newline adds an empty one |
| Randomness or device-clock error | Check the required capability or the actual device clock |
| Unexpected result after import | Check BOM removal, UTF-8 replacement, line separators and name bytes |
W3C Web Cryptography API: Cryptographic random valuesuuid.js 14.0.2: UUID generation APIs and state handlingW3C File API: Blob text readingWHATWG Encoding: UTF-8 and text decodingWHATWG HTML: Workers and their lifecycle
Clearing, local generation and website requests
Clear removes names/input, result, errors and editor history, and resets the custom namespace to DNS. Version, Amount, UUID format, uppercase, JSON and Wrap lines choices are retained. Refreshing or closing the workspace discards its in-memory input/results. Downloaded files remain on your device, and Clear does not promise forensic erasure from browser or operating-system memory.
Generation does not upload the supplied names, selected file contents or generated UUIDs to a generation server or allocation registry. Loading the website still sends ordinary metadata to hosting, and the public site uses Google Analytics for page visits with cookies and browser/device information. Local generation does not mean anonymity, zero network requests or zero infrastructure logging.
Embed UUID generator with its backlink
Choose the page language and use the integration section below the workspace to copy or download the supplied HTML snippet. Paste it into a platform that permits the external iframe and sizing script. The snippet includes a visible backlink to the matching localized ToolMellow UUID page; retain that credit link.
Preview the embed on a narrow screen and check clipboard/worker support for the chosen mode. It keeps the same versions, limits and local state boundaries, rather than becoming a remote identifier API or shared uniqueness service. The supplied link uses nofollow and noopener, and its presence does not guarantee higher rankings.
Common questions
How do I generate a UUID?
Choose UUID version and UUID format, set Amount for random/time/fixed modes or namespace and name lines for v3/v5, then press Generate UUIDs. Copy or download the resulting text or JSON. The default is v4.
What is the difference between UUID v4 and v7?
v4 uses cryptographic randomness with version/variant bits. v7 includes Unix milliseconds with library counter/random fields. It is time-oriented, but this tool does not promise authoritative time or ordering across separate runs, tabs or devices.
Are UUIDs always unique?
No global guarantee or external allocation check is made. Random UUID collisions are unlikely under appropriate assumptions. Name-based duplicates repeat, and Nil/Max are fixed constants. Enforce the actual application’s uniqueness rules when needed.
Why does UUID v5 repeat the same value?
The same version, namespace and exact UTF-8 name reproduce the same UUID. Empty or duplicated names are retained as separate lines and can repeat values. The operation does not choose a new random ID for each repeated name.
Does Amount control UUID v3 or v5 batches?
No. Every CRLF, CR or LF-separated line is one name, including empty lines and a trailing empty line. Name-based batches allow up to 1,000 lines and one million UTF-16 input units.
What do DNS and URL namespace choices do?
They select predefined namespace UUIDs for the literal name bytes. They do not query DNS, fetch a URL, canonicalize domain case or validate a full address. Follow the naming convention required by your application.
Does UUID v1 reveal my MAC address here?
This implementation uses random node fields for v1 and v6, never the device’s MAC address. They still expose time-related information. Other UUID implementations may use different node sources; this is not an anonymity guarantee.
Are UUID v7 values guaranteed to be time ordered?
The library handles time/counter state within the generation worker. A fresh worker is used for each run, and there is no distributed or cross-batch ordering guarantee. Device-clock errors or rollback handling can affect the time information.
What is the difference between UUID and GUID formats?
GUID is common UUID-related terminology. This tool’s braces option wraps the textual UUID only. Standard, compact, braces and URN forms represent the same bits; they do not convert to a Windows binary layout.
Are Nil and Max new unique values?
No. Nil is all zeros and Max all ones. They are fixed special values and repeat if you generate more than one. They are not ordinary v0/v15 random generation modes.
Does UUID generation always require HTTPS and Web Crypto hashing?
No. Random/time modes need cryptographic random values; v4 can use a library fallback when native randomUUID is unavailable. v3/v5 use library name hashing, and Nil/Max are constants. These do not all require crypto.subtle or the same capability path.
Can a UUID be used as a password or secret token automatically?
Its syntax does not establish secrecy, authorization or a complete token lifecycle. Name/time/fixed modes have predictable or exposed structure. Design authentication and storage for the actual application instead of treating every UUID as a secret.
What does Clear reset?
It clears input, output, errors and history and resets a custom namespace to DNS. It retains version, Amount, format, uppercase, JSON and Wrap lines. Already downloaded files remain on your device.
Can I embed this UUID generator on my website?
Use its localized HTML snippet below the workspace, retain the visible ToolMellow backlink and verify iframe/script/clipboard/worker support. The embed has the same modes and limits; it is not a remote allocation or uniqueness API.
Sources and further reading
- RFC 9562: Universally Unique Identifiers, layouts, namespaces and examples
- uuid.js 14.0.2: UUID generation APIs and state handling
- W3C Web Cryptography API: Cryptographic random values
- WHATWG Encoding: UTF-8 and text decoding
- ECMAScript: String isWellFormed
- W3C File API: Blob text reading
- WHATWG HTML: Workers and their lifecycle