GUID

GUID (англ. Globally Unique Identifier) — статистично унікальний 128-бітний ідентифікатор. Загальна кількість унікальних ключів настільки велика ( 2 128 = 3 , 4028 10 38 {\displaystyle 2^{128}=3,4028*10^{38}} ), що ймовірність того, що у світі будуть незалежно згенеровані два однакових ключі, вкрай мала.

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

У тексті GUID зазвичай зображується у вигляді рядка з 32 шістнадцяткових цифр, що розбиті на групи дефісами й оточені фігурними дужками: {D12BEB59-6259-4FA1-A733-ADCD523D72DC}.

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

Реалізація 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 гарантує, що дві (можливо, несумісні) версії одного компонента можуть мати одне і те ж ім'я, але різний ідентифікатор.

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

Використання

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

Посилання

  • RFC: A Universally Unique IDentifier (UUID) URN Namespace
  • GUID structure (Windows) — MSDN
  • Generate GUID(s) Online (онлайн-сервіс для генерування GUID)
  • Guid Structure (C#) — MSDN [Архівовано 4 грудня 2016 у Wayback Machine.]
  • UUID Class (Java) [Архівовано 28 листопада 2016 у Wayback Machine.]
В іншому мовному розділі є повніша стаття Globally unique identifier(англ.). Ви можете допомогти, розширивши поточну статтю за допомогою перекладу з англійської.
  • Дивитись автоперекладену версію статті з мови «англійська».
  • Перекладач повинен розуміти, що відповідальність за кінцевий вміст статті у Вікіпедії несе саме автор редагувань. Онлайн-переклад надається лише як корисний інструмент перегляду вмісту зрозумілою мовою. Не використовуйте невичитаний і невідкоригований машинний переклад у статтях української Вікіпедії!
  • Машинний переклад Google є корисною відправною точкою для перекладу, але перекладачам необхідно виправляти помилки та підтверджувати точність перекладу, а не просто скопіювати машинний переклад до української Вікіпедії.
  • Не перекладайте текст, який видається недостовірним або неякісним. Якщо можливо, перевірте текст за посиланнями, поданими в іншомовній статті.
  • Докладні рекомендації: див. Вікіпедія:Переклад.