Вопрос

Я вижу эти две аббревиатуры, и мне интересно, есть ли какие-либо различия между GUID и UUID?

Это было полезно?

Решение

В простой ответ является: нет разницы, это одно и то же.Считайте их 16-байтовыми (128-битными) значениями, которые используются как уникальные значения.На языке Microsoft они называются GUID, но если вы не используете язык Microsoft, называйте их UUID.

Даже авторы спецификации UUID и Microsoft утверждают, что это синонимы:

  • Из введения в IETF RFC 4122 "Универсально уникальный идентификатор (UUID) Пространство имен URN":«Пространство имен унифицированного имени ресурса для UUID (универсальный уникальный идентификатор), также известное как GUID (глобальный уникальный идентификатор)».

  • Из Рекомендация ITU-T X.667, международный стандарт ISO/IEC 9834-8:2004.:«UUID также известны как глобальные уникальные идентификаторы (GUID), но этот термин не используется в данной Рекомендации».

  • И Майкрософт даже претензии GUID определяется UUID RFC:«В программировании Microsoft Windows и в операционных системах Windows глобальный уникальный идентификатор (GUID), как указано в [RFC4122], ...Термин «универсальный уникальный идентификатор» (UUID) иногда используется в спецификациях протокола Windows как синоним GUID.

Но правильный ответ зависит от того, что означает вопрос, когда говорится «UUID»...

Первая часть зависит от того, что думает спрашивающий, когда говорит «UUID».

Заявление Microsoft подразумевает, что все UUID являются GUID.Но все ли GUID являются настоящими UUID?То есть, является ли набор всех UUID просто подмножеством набора всех GUID или это один и тот же набор?

Глядя на детали RFC 4122, можно увидеть четыре разных «варианта» UUID.В основном это связано с тем, что такие 16-байтовые идентификаторы использовались до того, как эти спецификации были объединены при создании спецификации UUID.Из раздела 4.1.1 RFC 4122, четверка варианты UUID:

  1. Зарезервировано, обратная совместимость сетевых вычислительных систем
  2. В вариант указано в RFC 4122 (из которых существует пять подвариантов, называемых «версиями»)
  3. Зарезервировано, обратная совместимость корпорации Microsoft.
  4. Зарезервировано для будущего определения.

Согласно RFC 4122, все UUID варианты являются «настоящими UUID», то все GUID являются настоящими UUID.На буквальный вопрос «есть ли какая-либо разница между GUID и UUID» для UUID RFC 4122 ответ определенно отрицательный: нет разницы (но с учетом второй части ниже).

Но не все GUID вариант 2 UUID (например.Microsoft COM имеет GUID, которые представляют собой UUID варианта 3).Если бы вопрос был «есть ли какая-либо разница между GUID и UUID варианта 2», то ответ был бы утвердительным — они могут быть разными.Тот, кто задает вопрос, вероятно, не знает о варианты и они могут думать только о вариант 2 UUID, когда они произносят слово «UUID» (например.они смутно знают о MAC-адресе + времени и формах UUID алгоритмов случайных чисел, которые оба являются версии из вариант 2).В каком случае ответ да, разные.

Таким образом, ответ частично зависит от того, что думает спрашивающий, когда произносит слово «UUID».Имеют ли они в виду UUID варианта 2 (потому что это единственный известный им вариант) или все UUID?

Вторая часть зависит от того, какая спецификация используется в качестве определения UUID.

Если вы думаете, что это сбивает с толку, прочитайте МСЭ-Т X.667 ИСО/МЭК 9834-8:2004 который должен быть согласован и полностью технически совместим с RFC 4122.В пункте 11.2 есть дополнительное предложение, в котором говорится: «Все UUID, соответствующие настоящей Рекомендации | Международному стандарту, должны иметь варианты битов, при этом бит 7 октета 7 установлен в 1, а бит 6 октета 7 установлен в 0».Это означает, что только вариант 2 UUID соответствует этому стандарту (эти два битовых значения означают вариант 2).Если это правда, то не все GUID соответствуют UUID ITU-T/ISO/IEC, поскольку соответствующие UUID ITU-T/ISO/IEC могут быть только вариант 2 значения.

Следовательно, реальный ответ также зависит от того, о какой спецификации UUID задается вопрос.Предполагая, что мы явно говорим обо всех UUID, а не только об UUID варианта 2:есть нет разницы между GUID и UUID IETF, но да, разница между GUID и соответствующий UUID ITU-T/ISO/IEC!

Двоичные кодировки могут отличаться

При двоичном кодировании (в отличие от удобочитаемого текстового формата) GUID может храниться в структуре с четырьмя различными полями следующим образом.Этот формат отличается от Стандарт UUID только в порядке байтов первых трех полей.

Bits  Bytes Name   Endianness  Endianness
                   (GUID)      RFC 4122

32    4     Data1  Native      Big
16    2     Data2  Native      Big
16    2     Data3  Native      Big
64    8     Data4  Big         Big

Другие советы

GUID - это реализация Microsoft стандарта UUID.

За Википедия :

  

Термин GUID обычно относится к реализации Microsoft универсального уникального идентификатора (UUID).

Обновленная цитата из той же статьи в Википедии:

  

RFC 4122 сам заявляет, что идентификаторы UUID также известны как идентификаторы GUID. Все это говорит о том, что «GUID», изначально ссылаясь на вариант UUID, используемый Microsoft, стал просто альтернативным именем для UUID & # 8230;

Не совсем. GUID больше ориентирован на Microsoft, тогда как UUID используется более широко (например, как в схеме URN urn: uuid: и в CORBA).

GUID давно используется в областях, где он не обязательно является 128-битным значением так же, как UUID. Например, спецификация RSS определяет GUID как любую строку по вашему выбору. , пока он уникален, с "isPermalink" атрибут, указывающий, что значение, которое вы используете, является постоянной ссылкой на синдицируемый элемент.

Текстовое представление GUID от Microsoft может быть в форме UUID, заключенного в две фигурные скобки {} .

Одно из различий между GUID в SQL Server и UUID в PostgreSQL - это регистр букв; SQL Server выводит верхний, а PostgreSQL выводит нижний.

Шестнадцатеричные значения " a " через " f " выводятся как символы нижнего регистра и нечувствительны к регистру при вводе. - rfc4122 # section-3

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top