Generator UUID Wersji 7 (Unix Epoch Time)

Generuj UUID z czasem Unix z precyzją do milisekund dla sortowania według czasu

Wypróbuj te przykłady:

Co to jest UUID v7?

UUID wersja 7 to uporządkowany czasowo 128-bitowy identyfikator zdefiniowany w RFC 9562, opublikowany w maju 2024 r. Składa się z:

  • Znacznik czasu Unix: 48 bitów znacznika czasu Unix z precyzją do milisekundy
  • Dane losowe: 74 bity danych losowych
  • Bity wersji i wariantu: 6 bitów do identyfikacji formatu

Przykład formatu: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f

Jak działa UUID v7

  1. Pobierz bieżący znacznik czasu Unix w milisekundach (48 bitów)
  2. Wygeneruj 74 bity kryptograficznie silnych danych losowych
  3. Ustaw bity wersji na 0111 (wersja 7)
  4. Ustaw bity wariantu na 10 (standard RFC 4122)
  5. Złóż jako 32 cyfry szesnastkowe z myślnikami: format 8-4-4-4-12

Zalety i uwagi

AdvantagesConsiderations
  • Sortowalne leksykograficznie
  • Brak osadzonego adresu MAC
  • Osadzony znacznik czasu Unix
  • Uproszczone dla baz danych
  • Systemy muszą obsługiwać UUID v7
  • Ograniczona rozdzielczość znacznika czasu (ms)
  • Ograniczone wsparcie w systemach starszych
  • Nie można cofnąć się przed rok 1970

Struktura UUID v7

BitsContent
0-47Znacznik czasu Unix (milisekundy)
48-51Wersja (0111 dla v7)
52-63Dane losowe
64-65Wariant (10 zgodny z RFC 4122)
66-127Dane losowe

UUID v7 a inne wersje

VersionOparte naZastosowaniePrivacy
UUID v1Czas + MACIdentyfikatory uporządkowane czasowo⚠️ Ujawnia adres MAC
UUID v3Przestrzeń nazw + MD5Deterministyczne identyfikatory✅ Prywatne
UUID v4RandomBezpieczne losowe identyfikatory✅ Prywatne
UUID v5Przestrzeń nazw + SHA-1Deterministyczne identyfikatory✅ Prywatne
UUID v6Czas (przeorganizowany)Sortowalne identyfikatory⚠️ Ujawnia adres MAC
UUID v7Czas + losoweSortowalne identyfikatoryZawiera czas generacji; bez adresu MAC

Typowe zastosowania

  • Klucze główne bazy danych: Wydajne indeksy
  • Systemy rozproszone: Uporządkowane czasowo bez koordynacji
  • Nowoczesne aplikacje: Identyfikatory zorientowane na prywatność
  • Microservices: Sortowalne identyfikatory między usługami
  • Event sourcing: Chronologiczne identyfikatory zdarzeń
  • Hurtownie danych: Identyfikatory analityczne uporządkowane czasowo

Najczęściej zadawane pytania

Jaką przewagę ma UUID v7 nad v1 lub v6?

UUID v7 używa milisekundowego znacznika czasu Unix i danych losowych zamiast adresów MAC, oferując ochronę prywatności przy zachowaniu możliwości sortowania według czasu generowania.

Czy UUID v7 to oficjalny standard?

Tak. UUID v7 jest zdefiniowany w RFC 9562, opublikowanym w maju 2024 r.

Czy mogę wydobyć czas utworzenia z UUID v7?

Tak. Znacznik czasu Unix w milisekundach można wydobyć z pierwszych 48 bitów i przekonwertować na standardową datę i godzinę.

Czy UUID v7 można sortować według czasu utworzenia?

Tak. UUID v7 jest zaprojektowany jako sortowalny leksykograficznie, z znacznikiem czasu Unix w najbardziej znaczących bitach, co pozwala na bezpośrednie porównanie łańcuchów w kolejności chronologicznej.

Czy UUID v7 ujawnia jakieś informacje o systemie?

UUID v7 nie osadza adresu MAC, ale jego pierwsze 48 bitów ujawnia znacznik czasu generacji w milisekundach. Traktuj te metadane czasowe jako widoczne dla każdego, kto otrzyma identyfikator.

Resources