 Let's take a look at how version 3 and 5 UUIDs, also called GUIDs, are created, as specified by RFC 4122. There are two inputs, the namespace UUID and the name. The namespace UUID is itself a UUID of any version that identifies the intended use of the UUID. For example, it can indicate that it's a domain name UUID, an OID UUID, a UUID that represents a message in a particular messenger app or for any other purpose. In this example, I've just chosen a random namespace UUID. The name input is the unique part. The meaning of the name is determined by the namespace. For example, in the DNS namespace, it's the canonical form of the domain. In the OID namespace, it's the OID. Often, it's just randomly generated. I'm using the string example as the name here. I take the namespace UUID as raw bytes and the name and concatenate them together. This concatenation is then passed through a hash function. For version 3 UUIDs, this is MD5. For version 5 UUIDs, this is shawl1. The hashing function is the only difference between version 3 and 5 UUIDs. I'll stick with version 5 in this example since it's newer and less prone to collisions. Dashes are added after the 8th, 12th, 16th, and 20th hex characters. Since shawl1 has 160 output bits, but UUIDs are 128 bits, the extra 32 bits at the end are discarded. Since MD5 hashes are 128 bits long, there is no need to do this for version 3 UUIDs. Next, the version number is added to the UUID. Hex character 13, or bits 97 to 100, is replaced with the version number. 3 for version 3 UUIDs and 5 for version 5 UUIDs. Finally, the variant specifier. This specifies how the UUID is encoded. The only spec compliant value is 1-0, which indicates big end in also called network order. Some Microsoft products use 1-1-0 to designate little end in UUIDs, which are encoded differently. However, this is non-standard and should not be used. The first 2 bits, or 3 in the non-standard case, of the 17th hex character, or 9th byte, are overridden with the variant specifier. The UUID is now complete. Thanks for watching!