Przejdź do treści
HNarzędzia
pl
Kategorie

Generator UUID v4 i v7 online (GUID) + walidator

Generuj unikalne identyfikatory UUID (GUID) w wersji 4 lub 7 bezpośrednio w przeglądarce, z użyciem kryptograficznego generatora liczb losowych. Sprawdź też wersję, wariant i znacznik czasu istniejącego UUID.

  • Za darmo
  • Bez rejestracji
  • Prywatne
  • Działa lokalnie

Generator

122 losowe bity - najpopularniejszy, uniwersalny wybór.

Walidator UUID

Jak wygenerować UUID?

  1. 1.

    Wybierz wersję

    v4 - w pełni losowy, v7 - zaczyna się od znacznika czasu, więc kolejne identyfikatory są posortowane.

  2. 2.

    Podaj liczbę

    Wpisz, ile identyfikatorów potrzebujesz (od 1 do 1000). Lista generuje się od razu.

  3. 3.

    Ustaw format

    Opcjonalnie wielkie litery, zapis bez myślników (32 znaki) lub w nawiasach klamrowych jak GUID w .NET.

  4. 4.

    Skopiuj lub pobierz

    Skopiuj wszystkie UUID do schowka albo pobierz je jako plik .txt (jeden w linii).

Budowa UUID

UUID (Universally Unique Identifier, w świecie Microsoft - GUID) to 128-bitowa liczba zapisywana jako 32 cyfry szesnastkowe w grupach 8-4-4-4-12, np. 017f22e2-79b0-7cc3-98c4-dc0c0c07398f. Standard opisuje RFC 9562 (maj 2024), który zastąpił RFC 4122.

  • 13. znak to wersja (tu 7),
  • 17. znak to wariant - dla standardowych UUID zawsze 8, 9, a lub b (bity 10).

UUID v4 czy v7?

UUID v4UUID v7
Zawartość122 losowe bity48 bitów czasu Unix (ms) + 74 bity losowe
Sortowanielosowa kolejnośćchronologiczna
Indeks w bazie (B-tree)fragmentacja, wolniejsze wstawianiewstawianie na koniec - szybko
Ujawnia czas utworzenianietak (z dokładnością do ms)
Zastosowanietokeny, identyfikatory publiczneklucze główne, logi, zdarzenia

W tym generatorze UUID v7 zachowują kolejność także wtedy, gdy wiele powstaje w tej samej milisekundzie - 12-bitowe pole rand_a działa jak licznik (metoda 1 z RFC 9562, §6.2).

Czy UUID może się powtórzyć?

Teoretycznie tak, praktycznie nie. UUID v4 ma 2122 ≈ 5,3 × 1036 możliwych wartości. Aby prawdopodobieństwo choćby jednej kolizji wyniosło 50%, trzeba by wygenerować ok. 2,7 × 1018 identyfikatorów - generując miliard UUID na sekundę, zajęłoby to ok. 85 lat. Warunkiem jest dobre źródło losowości: narzędzie korzysta z crypto.randomUUID() i crypto.getRandomValues(), a nie z Math.random().

UUID w bazach danych i kodzie

  • PostgreSQL - typ uuid zajmuje 16 bajtów; od wersji 13 funkcja gen_random_uuid() generuje v4 bez rozszerzeń, a od wersji 18 dostępna jest uuidv7().
  • MySQL / MariaDB - przechowuj UUID jako BINARY(16) zamiast CHAR(36); oszczędzasz 20 bajtów na wiersz i w każdym indeksie.
  • JavaScript - crypto.randomUUID() zwraca v4; v7 wymaga biblioteki lub własnej implementacji.
  • SQL Server - typ uniqueidentifier (GUID) sortuje bajty w nietypowej kolejności, więc korzyść z v7 jest tam mniejsza.

Zapis z myślnikami ma 36 znaków, bez myślników - 32. Opcja „W nawiasach { }” daje format znany z rejestru Windows i plików projektów Visual Studio. Do 1000 identyfikatorów naraz możesz skopiować lub pobrać jako plik .txt, po jednym w wierszu.

Najczęściej zadawane pytania

Czym różni się UUID od GUID?

+
To ta sama 128-bitowa struktura. GUID to nazwa używana przez Microsoft (Windows, .NET, SQL Server), często zapisywana wielkimi literami w nawiasach klamrowych, np. {017F22E2-79B0-7CC3-98C4-DC0C0C07398F}.

Czy UUID v4 nadaje się na token bezpieczeństwa?

+
UUID v4 z kryptograficznego generatora ma 122 bity entropii, co wystarcza na trudne do odgadnięcia identyfikatory. Do tokenów sesji i resetu hasła lepiej jednak użyć dedykowanych, dłuższych tokenów (np. 256 bitów).

Jak odczytać datę z UUID v7?

+
Pierwsze 12 cyfr szesnastkowych to czas Unix w milisekundach. Wklej UUID do walidatora poniżej generatora - pokaże datę i godzinę utworzenia. Działa też dla UUID v1 i v6.

Czy w bazie danych przechowywać UUID jako tekst?

+
Najlepiej w natywnym typie (uuid w PostgreSQL, uniqueidentifier w SQL Server) lub jako BINARY(16) w MySQL - zajmuje 16 bajtów zamiast 36 znaków tekstu.

Czy wygenerowane UUID są gdzieś zapisywane?

+
Nie. Identyfikatory powstają lokalnie w przeglądarce i nie są wysyłane na serwer.

Aktualizacja: