Skip to main content
CheckTown
Генератори

Генератор UUID: Створюйте унікальні ідентифікатори для будь-якого проекту

Опубліковано 5 хв читання
У цій статті

Що таке UUID?

UUID (Universally Unique Identifier) — це 128-бітний ідентифікатор, який гарантовано є унікальним у просторі та часі без потреби в центральному органі керування. UUID форматується як 32 шістнадцяткових символи у 5 групах, розділених дефісами: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Існує кілька версій UUID, кожна з яких генерується по-різному. Версія 4 (випадкова) є найпоширенішою — вона генерує 122 випадкових біти, що робить колізії астрономічно малоймовірними (вам знадобилося б генерувати 1 мільярд UUID на секунду протягом 85 років, щоб отримати 50% шанс колізії).

Як генерується UUID

UUID v4 використовує криптографічно захищену випадкову генерацію.

  • Випадкові біти — 122 випадкових біти генеруються за допомогою CSPRNG
  • Маркування версії — біти 12–15 третьої групи встановлюються як 0100 для позначення версії 4
  • Маркування варіанту — біти 6–7 четвертої групи встановлюються як 10 для позначення варіанту RFC 4122

Спробуйте безкоштовно — реєстрація не потрібна

Згенерувати UUID →

Коли використовувати UUID

UUID — це найкращий тип ідентифікатора для розподілених систем і баз даних.

  • Первинні ключі бази даних — використовуйте UUID як первинні ключі в розподілених системах, щоб уникнути конфліктів ID під час злиття
  • Токени сесій — генеруйте UUID для ідентифікаторів сесій і тимчасових токенів
  • Іменування файлів — використовуйте UUID для генерації унікальних імен файлів для завантажень користувачів і згенерованих ресурсів

Часті запитання

У чому різниця між UUID v1, v3, v4 і v5?

v1 базується на часі й включає MAC address, що робить його відстежуваним. v3 і v5 є детермінованими — вони хешують простір імен і назву для отримання одного й того самого UUID щоразу (v3 використовує MD5, v5 — SHA-1). v4 є випадковим і найбільш поширеним для загальних унікальних ідентифікаторів. v7 (новий стандарт) поєднує часову мітку та випадковість для сортованих UUID.

Що краще для первинних ключів бази даних — UUID чи автоінкрементні цілі числа?

Автоінкрементні числа простіші та ефективніші за обсягом сховища. UUID кращі для розподілених систем, злиття даних із кількох джерел, відображення ID у URL без розкриття інформації про послідовність і генерації ID на стороні клієнта до вставки в базу даних. Для односерверних застосунків автоінкремент часто достатній.

Чи справді UUID є унікальними?

UUID v4 має 2^122 можливих значень — приблизно 5,3 × 10^36. Ймовірність генерації двох однакових UUID настільки мала, що для будь-якого практичного застосування вона фактично дорівнює нулю. Парадокс днів народження означає, що вам знадобиться приблизно 2,71 квінтильйони UUID, щоб отримати 50% шанс колізії.

Пов'язані інструменти