The version 3 UUID is meant for generating UUIDs from names that
are drawn from, and unique within, some name space. Some examples
of names (and, implicitly, name spaces) might be DNS names, URLs, ISO
Object IDs (OIDs), reserved words in a programming language, or X.500
Distinguished Names (DNs); thus, the concept of name and name space
should be broadly construed, and not limited to textual names.
The requirements for such UUIDs are as follows:
- The UUIDs generated at different times from the same name in the
same namespace MUST be equal
- The UUIDs generated from two different names in the same namespace
should be different (with very high probability)
- The UUIDs generated from the same name in two different namespaces
should be different with (very high probability)
- If two UUIDs that were generated from names are equal, then they
were generated from the same name in the same namespace (with very
high probability).