Генератор UUID Версії 1 (часова мітка)

Генеруйте UUID на основі часових міток із MAC-адресою для унікальної ідентифікації у хронологічному порядку

Спробуйте ці приклади:

Що таке UUID v1?

UUID версії 1 — це 128-бітовий ідентифікатор на основі часу (рядок з 36 символів) згідно з RFC 4122. Він поєднує:

  • Мітка часу: 60 біт (точність 100 нс від 15.10.1582)
  • Послідовність годинника: 14 біт лічильника для корекцій часу
  • ID вузла: 48 біт (зазвичай MAC-адреса)

Приклад формату: 2ed6657d-e927-11eb-9a03-0242ac130003

Як працює UUID v1

  1. Обчислити поточну мітку часу (інтервали 100 нс від 15.10.1582)
  2. Отримати/збільшити 14-бітну послідовність годинника (для уникнення колізій при відкаті часу)
  3. Отримати 48-бітний ID вузла (зазвичай MAC-адреса)
  4. Встановити біти версії (0001) та біти варіанта (10)
  5. Зібрати у 32 шістнадцяткові цифри з дефісами: формат 8-4-4-4-12

Переваги та зауваження

ПеревагиЗауваження
  • Сортування за часом (можна впорядкувати)
  • Висока продуктивність генерації
  • Розподілена генерація
  • Вбудований час створення
  • Питання конфіденційності MAC-адреси
  • Проблеми синхронізації годинника
  • Більш передбачувано, ніж випадкові UUID
  • Не є криптографічно безпечним

Структура UUID v1

БітиЗміст
0-31Низькі 32 біти мітки часу
32-47Середні 16 біт мітки часу
48-59Високі 12 біт мітки часу
60-63Версія (0001 для v1)
64-65Варіант (10 за RFC4122)
66-79Послідовність годинника (14 біт)
80-127ID вузла (48 біт)

UUID v1 проти інших версій

ВерсіяНа основіВипадок використанняКонфіденційність
UUID v1Час + MACСортуються за часом⚠️ Розкриває MAC
UUID v3Namespace + MD5Детерміновані ID✅ Приватні
UUID v4ВипадковіБезпечні випадкові ID✅ Приватні
UUID v5Namespace + SHA-1Детерміновані ID✅ Приватні
UUID v6Час (реорганізований)Сортуються за часом⚠️ Розкриває MAC
UUID v7Час + випадковіСортуються за часом✅ Приватні

Типові випадки використання

  • Ключі бази даних: розподілені бази даних
  • Аудит-логи: відстеження в хронологічному порядку
  • ID транзакцій: бізнес-процеси
  • Відстеження сесій: веб-додатки
  • Адресація контенту: CMS системи
  • Повідомлення IoT: зв’язок пристроїв

Поширені запитання

Чи є UUID v1 криптографічно безпечним?

Ні. UUID v1 передбачуваний, якщо відомі мітка часу та MAC-адреса. Для безпеки використовуйте UUID v4.

Чи можуть значення UUID v1 зіткнутися?

Колізії надзвичайно малоймовірні завдяки точності міток часу, лічильникам послідовності годинника та ID вузла.

Чи можна витягти час створення з UUID v1?

Так. Більшість бібліотек UUID надають алгоритми для витягнення мітки часу.

Чи сортуються UUID v1 за часом створення?

Так, але потрібні спеціальні функції сортування. Просте порівняння рядків не працює.

Чи розкриває UUID v1 мою MAC-адресу?

За замовчуванням так. Більшість реалізацій використовують MAC для ID вузла. Privacy-орієнтовані реалізації можуть використовувати випадкові ID вузла.

Ресурси