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?

Wersja UUID 7 to uporządkowany czasowo 128-bitowy identyfikator (ciąg 36 znaków) zaproponowany w nowym projekcie specyfikacji UUID. Składa się z:

  • Znacznik czasu Unix: 48 bitów precyzji czasu Unix w milisekundach
  • 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 aktualny 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
  • Sortowalny leksykograficznie
  • Brak problemów z prywatnością
  • Osadzony znacznik czasu Unix
  • Uproszczony dla baz danych
  • Status projektu specyfikacji
  • Ograniczona rozdzielczość znacznika czasu (ms)
  • Ograniczone wsparcie w starszych systemach
  • Nie można cofnąć się przed 1970

Struktura UUID v7

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

UUID v7 a inne wersje

VersionOparte naPrzypadek użyciaPrivacy
UUID v1Czas + MACIdentyfikatory uporządkowane czasowo⚠️ Ujawnia MAC
UUID v3Namespace + MD5Identyfikatory deterministyczne✅ Prywatne
UUID v4RandomBezpieczne identyfikatory losowe✅ Prywatne
UUID v5Namespace + SHA-1Identyfikatory deterministyczne✅ Prywatne
UUID v6Czas (przearanżowany)Identyfikatory sortowalne⚠️ Ujawnia MAC
UUID v7Czas + losoweIdentyfikatory sortowalne✅ Prywatne

Typowe przypadki użycia

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

Najczęściej zadawane pytania

Jaka jest zaleta UUID v7 nad v1 lub v6?

UUID v7 używa znacznika czasu Unix w milisekundach i danych losowych zamiast adresów MAC, oferując ochronę prywatności przy zachowaniu sortowalności według czasu generacji.

Czy UUID v7 jest oficjalnym standardem?

UUID v7 jest obecnie projektem specyfikacji w proponowanym dokumencie RFC 4122bis. Nie jest jeszcze oficjalnym standardem RFC, ale jest implementowany w wielu bibliotekach UUID.

Czy mogę wyodrębnić czas utworzenia z UUID v7?

Tak. Znacznik czasu Unix w milisekundach można wyodrębnić z pierwszych 48 bitów i przekształcić na standardową datę i czas.

Czy UUID v7 są sortowalne według czasu utworzenia?

Tak. UUID v7 jest zaprojektowany tak, aby był sortowalny leksykograficznie, z znacznikiem czasu Unix w najbardziej znaczących bitach, co pozwala na bezpośrednie porównanie ciągów znaków zgodne z kolejnością chronologiczną.

Czy UUID v7 ujawnia jakieś informacje o systemie?

Nie. W przeciwieństwie do v1/v6, UUID v7 nie używa adresów MAC. Łączy znacznik czasu z danymi losowymi, chroniąc prywatność przy zachowaniu sortowalności.

Resources