GUID

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

GUID (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор. Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов. Хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико (2128 или 3,4028×1038), что вероятность того, что в мире будут независимо сгенерированы два совпадающих ключа, крайне мала. Тем не менее, случаи совпадения известны: на системе Windows 95 GUID’ы ярлыка запуска DOS-программ (.pif) и программы ZipMagic 2000 совпадали.

«GUID» называют некоторые реализации стандарта, имеющего название Universally Unique Identifier (UUID).

В тексте GUID записывается в виде строки из тридцати двух шестнадцатеричных цифр, разбитой на группы дефисами и окружённой фигурными скобками:

{6F9619FF-8B86-D011-B42D-00CF4FC964FF}[1]

Реализация Microsoft[править | править вики-текст]

Структура идентификатора:

 GUID STRUCT
     Data1   dd
     Data2   dw
     Data3   dw
     Data4   db 8
 GUID ENDS

UUID-идентификаторы часто записывают в виде текстовой строки {G1G2G3G4-G5G6-G7G8-G9G10-G11G12G13G14G15G16}, где Gx — значение соответствующего байта структуры в шестнадцатеричном представлении:

Data1 = G4G3G2G1 Data2 = G6G5 Data3 = G8G7 Data4 = G9G10G11G12G13G14G15G16

Например, '22345200-abe8-4f60-90c8-0d43c5f6c0f6'[1] соответствует шестнадцатеричному 128-битному числу 0x00523422E8AB604FC8900D43C5F6C0F6

Максимальное значение в GUID соответствует десятичному числу 340 282 366 920 938 463 463 374 607 431 768 211 455.

Microsoft применяет GUID в OLE, COM и DCOM — например, в качестве идентификаторов для классов (CLSID), интерфейсов (IID), библиотек типов (LIBID). Использование GUID гарантирует, что две (возможно, несовместимые) версии одного компонента могут иметь одно и то же имя, но быть отличимыми по GUID.

Алгоритм, который Microsoft использовала для генерации GUID, был широко раскритикован. В частности, в качестве основы для генерации части цифр GUID использовался MAC-адрес сетевого адаптера, что означало, например, что по данному документу MS Word (также получающему при создании свой уникальный GUID) можно было определить компьютер, на котором он был создан. Позже Microsoft изменила алгоритм таким образом, чтобы он не включал в себя MAC-адрес.

Другие реализации[править | править вики-текст]

Также GUID — основа Таблицы разделов GUID, замены MBR в EFI.

Примечания[править | править вики-текст]

  1. 1 2 Последнее 8-байтное данное при записи часто разбивается на 2+6 (подробнее см. в английской версии статьи).

Ссылки[править | править вики-текст]