Генератор UUID Версії 7 (Unix Epoch Time)

Генеруйте UUID з Unix-тимчасовими мітками з точністю до мілісекунди для сортування за часом

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

Що таке UUID v7?

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

  • Unix-мітка часу: 48 бітів Unix-часу з точністю до мілісекунд
  • Випадкові дані: 74 біти випадкових даних
  • Біти версії та варіанту: 6 бітів для ідентифікації формату

Приклад формату: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f

Як працює UUID v7

  1. Отримати поточну Unix-мітку часу в мілісекундах (48 бітів)
  2. Згенерувати 74 біти криптографічно стійких випадкових даних
  3. Встановити біти версії як 0111 (версія 7)
  4. Встановити біти варіанту як 10 (стандарт RFC 4122)
  5. Зібрати як 32 шістнадцяткових цифри з дефісами: формат 8-4-4-4-12

Переваги та міркування

ПеревагиМіркування
  • Лексикографічно сортований
  • Немає проблем з приватністю
  • Вбудована Unix-мітка часу
  • Спрощений для баз даних
  • Статус проєкту специфікації
  • Обмежена роздільна здатність мітки часу (мс)
  • Обмежена підтримка в застарілих системах
  • Не може відображати час до 1970 року

Структура UUID v7

БітиВміст
0-47Unix-мітка часу (мілісекунди)
48-51Версія (0111 для v7)
52-63Випадкові дані
64-65Варіант (10 для RFC4122)
66-127Випадкові дані

UUID v7 у порівнянні з іншими версіями

ВерсіяБазується наВипадок використанняПриватність
UUID v1Час + MACID, впорядковані за часом⚠️ Розкриває MAC
UUID v3Простір імен + MD5Детерміновані ID✅ Приватний
UUID v4ВипадковийБезпечні випадкові ID✅ Приватний
UUID v5Простір імен + SHA-1Детерміновані ID✅ Приватний
UUID v6Час (переупорядкований)Сортовані ID⚠️ Розкриває MAC
UUID v7Час + випадковийСортовані ID✅ Приватний

Поширені випадки використання

  • Первинні ключі баз даних: Ефективні індекси
  • Розподілені системи: Впорядковані за часом без координації
  • Сучасні додатки: Ідентифікатори, орієнтовані на приватність
  • Мікросервіси: Сортовані міжсервісні ID
  • Event sourcing: Хронологічні ID подій
  • Сховища даних: Впорядковані за часом аналітичні ID

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

Яка перевага UUID v7 порівняно з v1 або v6?

UUID v7 використовує мілісекунди Unix-мітки часу та випадкові дані замість MAC-адрес, забезпечуючи захист приватності при збереженні можливості сортування за часом створення.

Чи є UUID v7 офіційним стандартом?

UUID v7 наразі є проєктом специфікації в запропонованому документі RFC 4122bis. Він ще не є офіційним стандартом RFC, але імплементований у багатьох бібліотеках UUID.

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

Так. Unix-мітку часу в мілісекундах можна витягти з перших 48 бітів і перетворити на стандартний формат дати та часу.

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

Так. UUID v7 розроблено для лексикографічного сортування, з Unix-міткою часу в найбільш значущих бітах, що дозволяє пряме порівняння рядків для відповідності хронологічному порядку.

Чи розкриває UUID v7 будь-яку системну інформацію?

Ні. На відміну від v1/v6, UUID v7 не використовує MAC-адреси. Він поєднує мітку часу з випадковими даними, захищаючи приватність при збереженні можливості сортування.

Ресурси