GUID

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

GUID (англ. Globally Unique Identifier) - статистично унікальний 128-бітний ідентифікатор. Загальна кількість унікальних ключів настільки велика (2128 або 3,4028×1038), що ймовірність того, що в світі будуть незалежно згенеровані два однакових ключі, вкрай мала.

«GUID»-ом називають деякі реалізації стандарту, що має назву Universally Unique Identifier (UUID).

У тексті GUID зазвичай зображається у вигляді рядка з 32 шістнадцяткових цифр, що розбиті на групи дефісами і оточені фігурними дужками:

{D12BEB59-6259-4FA1-A733-ADCD523D72DC}.

Останнє 8-байтове значення при записі часто розбивається дві групи по 2 і 6 шістнадцяткових цифри відповідно.

Реалізація Microsoft[ред.ред. код]

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

 typedef struct _GUID {
   DWORD Data1;
   WORD  Data2;
   WORD  Data3;
   BYTE  Data4[8];
 } GUID;

UUID-ідентифікатори часто записують у вигляді текстового рядка {G4G3G2G1-G6G5-G8G7-G9G10-G11G12G13G14G15G16}, де Gx - значення відповідного байта структури в шістнадцятковому представленні:

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

Наприклад, '22345200-abe8-4f60-90c8-0d43c5f6c0f6' відповідає 128-бітному числу у шістнадцятковому записі 0xF6C0F6C5430DC8904F60ABE822345200.

Максимальне значення в 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-адресу.

Використання[ред.ред. код]

  • Microsoft Windows використовує ідентифікатори GUID, щоб визначити класи та інтерфейси об'єктів COM. Скрипт може активувати певний клас або об'єкт, не знаючи назви або місця розташування динамічної бібліотеки, яка містить його.
  • ActiveX, система для завантаження та встановлення елементів управління у веб-браузері, використовує ідентифікатори GUID для унікальної ідентифікації кожного елемента керування.
  • GUID Partition Table від Intel, або GPT, система для розділення жорстких дисків.
  • JT файли використовують розбиття на 4 +2 +2 +8 * 1 байт для подання вузлів в структурі даних та ідентифікаторів сегментів.
  • Second Life використовує ідентифікатори GUID для ідентифікації всіх своїх активів.
  • Розробники баз даних і адміністратори часто використовують ідентифікатори GUID в якості первинних ключів для таблиць бази даних, щоб забезпечити унікальність між базами даних.

Посилання[ред.ред. код]