Tool to generate UUIDs (Universal Unique Identifier) from RFC 4122 and standardized ISO/IEC 9834-8:2008 compatible with version 3, 4 and 5
UUID - dCode
Tag(s) : Hashing Function, Informatics
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
A UUID (Universally Unique Identifier) ​​is a standardized identifier designed to be unique and universal. It is defined by RFC 4122 and adopted by the ISO/IEC 9834-8:2008 standard.
A UUID consists of 128 bits of data and is generally represented in hexadecimal format using the canonical format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
Depending on the version used, the uniqueness of a UUID can be guaranteed deterministically (by design) or probabilistically (by random generation).
A UUID can be generated according to different versions:
Version 4 is generated from pseudo-random numbers. Of the 128 bits, 122 bits are random, the others being reserved for the version and variant. Uniqueness is therefore probabilistic but extremely high.
Example: UUID v4 0cc12fda-deca-4f24-918b-f0884d2bb911
Version 3 is generated from an MD5 hash applied to the concatenation of two elements: a UUID named namespace and a string representing the element to be encoded.
Version 5 follows the same principle as version 3 but uses the SHA-1 hashing algorithm instead of MD5.
For versions 3 and 5, the generation is deterministic: for the same namespace and the same name (string of characters), the UUID produced is always identical.
A version 4 UUID is based on random bits and contains no usable semantic information. Therefore, there is nothing to decode besides its version and variant.
A version 3 or 5 UUID is generated by the cryptographic hashing of a string of characters combined with a namespace. Since MD5 and SHA-1 are one-way hash functions, it is not possible to recover the original string from the UUID.
However, regardless of the UUID type, certain bits always allow the version and variant to be identified.
UUIDs are generally categorized into different versions, ranging from version 1 to version 5.
Version 1: contains a timestamp and MAC address
Version 2: a variant of V1 for DCE (Distributed Computing Environment) which includes POSIX UIDs
Version 3: MD5 hash
Version 4: randomly generated
Version 5: SHA-1 hash
UUIDs also have a variant number (3 bits) assigned to them:
0xx: Reserved for NCS (Network Computing System) for backward compatibility
10x: Default variant, see RFC 4122
110: Reserved for Microsoft for backward compatibility
111: Reserved for future definition
A UUID string represents 128 bits encoded as 32 hexadecimal characters, typically divided into 5 groups of hexadecimal digits separated by hyphens -, according to the 8-4-4-4-12 pattern: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
A string strictly adhering to this format can be recognized syntactically as a UUID, but this does not guarantee that it was generated correctly.
Some characters in a UUID string explicitly encode the version and variant. In the canonical representation xxxxxxxx-xxxx-Yxxx-Zxxx-xxxxxxxxxxxx, each hexadecimal character corresponds to half a byte (4 bits).
The hexadecimal character Y corresponds to the 13th half-byte of the string. It directly encodes the UUID version.
Example: If Y equals 4, it is a UUIDv4
The hexadecimal character Z corresponds to the 17th half-byte of the string. It encodes the UUID variant. The 3 most significant bits of this half-byte determine the variant (see above).
A version 4 UUID has 122 random bits, which corresponds to 2^122 possible values (on the order of 10^36).
Even generating several billion UUIDs per second for centuries, the probability of a collision remains negligible.
dCode retains ownership of the "UUID" source code. Any algorithm for the "UUID" algorithm, applet or snippet or script (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or any "UUID" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) or any database download or API access for "UUID" or any other element are not public (except explicit open source licence). Same with the download for offline use on PC, mobile, tablet, iPhone or Android app.
Reminder: dCode is an educational and teaching resource, accessible online for free and for everyone.
The content of the page "UUID" and its results may be freely copied and reused, including for commercial purposes, provided that dCode.fr is cited as the source (Creative Commons CC-BY free distribution license).
Exporting the results is free and can be done simply by clicking on the export icons ⤓ (.csv or .txt format) or ⧉ (copy and paste).
To cite dCode.fr on another website, use the link:
In a scientific article or book, the recommended bibliographic citation is: UUID on dCode.fr [online website], retrieved on 2026-02-01,