Jak wygenerować UUID?
- 1.
Wybierz wersję
v4 - w pełni losowy, v7 - zaczyna się od znacznika czasu, więc kolejne identyfikatory są posortowane.
- 2.
Podaj liczbę
Wpisz, ile identyfikatorów potrzebujesz (od 1 do 1000). Lista generuje się od razu.
- 3.
Ustaw format
Opcjonalnie wielkie litery, zapis bez myślników (32 znaki) lub w nawiasach klamrowych jak GUID w .NET.
- 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,alubb(bity10).
UUID v4 czy v7?
| UUID v4 | UUID v7 | |
|---|---|---|
| Zawartość | 122 losowe bity | 48 bitów czasu Unix (ms) + 74 bity losowe |
| Sortowanie | losowa kolejność | chronologiczna |
| Indeks w bazie (B-tree) | fragmentacja, wolniejsze wstawianie | wstawianie na koniec - szybko |
| Ujawnia czas utworzenia | nie | tak (z dokładnością do ms) |
| Zastosowanie | tokeny, identyfikatory publiczne | klucze 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
uuidzajmuje 16 bajtów; od wersji 13 funkcjagen_random_uuid()generuje v4 bez rozszerzeń, a od wersji 18 dostępna jestuuidv7(). - MySQL / MariaDB - przechowuj UUID jako
BINARY(16)zamiastCHAR(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?
+
Czy UUID v4 nadaje się na token bezpieczeństwa?
+
Jak odczytać datę z UUID v7?
+
Czy w bazie danych przechowywać UUID jako tekst?
+
Czy wygenerowane UUID są gdzieś zapisywane?
+
Aktualizacja: