Как указано в RFC4122 , UUID3
и UUID5
пространства имен и имена хешированы (с MD5 или SHA1 ), что означает, что нет другого способа «декодировать» пространство имен или имя из заданного UUID, кроме bruteforce (в этом весь смысл ha sh функций ).
Вычислить га sh идентификатора пространства имен, объединенного с именем.
RFC422 - 4.3 - Алгоритм создания UUID на основе имени
Однако вы можете напрямую сравнить хешированные пространства имен и имя, чтобы определить, принадлежат ли два UUID одному и тому же пространству имен и действительно имеют одно и то же имя. Вот пример в Python (используется стандартный модуль uuid
):
import uuid
name = 'stackoverflow.com'
a = uuid.uuid5(namespace=uuid.NAMESPACE_DNS, name=name)
b = uuid.uuid5(namespace=uuid.NAMESPACE_DNS, name=name)
assert a == b
print(a)
print(b)
cd84c40a-6019-50c7-87f7-178668ab9c8b
cd84c40a-6019-50c7-87f7-178668ab9c8b