§

Generator UUID — darmowy generator UUID v4 online

Domyślnie v4. v7 sortuje się leksykograficznie według czasu generowania i jest najlepszym wyborem dla kluczy bazodanowych.
Format wyjściowy
§

Wynik

    Identyfikatory UUID są kotwicą kolumn tożsamościowych w polskim stosie danych: domyślne `id` w świeżych projektach Supabase i tabelach PostgreSQL hostowanych w OChK to typ `uuid`, każda transakcja w Przelewy24 czy Tpay nosi klucz w kształcie UUID, a tabele wymiarowe w hurtowniach Snowflake w polskich bankach sięgają po RFC 9562 (dawniej RFC 4122) jako stabilny klucz zastępczy. Integracje z systemem P1 i e-Receptami używają UUID-ów jako identyfikatorów `Bundle.identifier` w zasobach HL7 FHIR R4 wymienianych z Centrum e-Zdrowia. Ten generator emituje kryptograficznie losowe UUID-y v4 oraz uporządkowane czasowo v7 wyłącznie przez Web Crypto API przeglądarki, więc zarezerwowane produkcyjne wartości nie wyciekają zdalnie.

    Czym jest UUID?

    UUID (Universally Unique Identifier) to 128-bitowa wartość zapisywana jako 36-znakowy ciąg, np. 550e8400-e29b-41d4-a716-446655440000. Format i semantykę wersji definiują RFC 4122 dla v1–v5 oraz RFC 9562 dla nowszych v6, v7 i v8. Narzędzie generuje v4 (czysto losowy), v1 (znacznik czasu plus losowy identyfikator węzła) oraz v7 (prefiks z uniksowego znacznika czasu w milisekundach plus losowy sufiks, sortowalny według czasu generowania) — wszystko w Twojej przeglądarce, za pomocą platformowego API Web Crypto. Żadne dane nie są wysyłane do serwera.

    Jak działa generowanie UUID?

    Każda wersja inaczej waży determinizm, sortowalność i entropię. Narzędzie wybiera właściwy algorytm na podstawie Twojego wyboru:

    1. v4 (losowy) wywołuje przeglądarkową funkcję crypto.randomUUID(), która zwraca 122 bity kryptograficznej losowości, a 6 stałych bitów (wersja 0100 i wariant 10) jest ustawionych we właściwych pozycjach. Kolizje są astronomicznie mało prawdopodobne — aby z 50% prawdopodobieństwem trafić na jeden duplikat, trzeba wygenerować około 2,71 tryliona UUID-ów v4.
    2. v1 (znacznik czasu + węzeł) upakowuje 60-bitowy gregoriański znacznik czasu (taktowanie 100-nanosekundowe od 1582-10-15) w time_low / time_mid / time_hi_and_version, ustawia półbajt wersji na 0001, dobiera 14-bitową sekwencję zegara z ustawionymi bitami wariantu i używa 48-bitowego losowego identyfikatora węzła z wymuszonym bitem multicast (RFC 4122 §4.5 wprost dopuszcza losowy identyfikator węzła, gdy nie ma sprzętowego MAC — bit multicast oznacza wartość jako nie-MAC).
    3. v7 (sortowalny znacznik czasu), zgodnie z RFC 9562 §5.7, układa 48-bitowy big-endian uniksowy znacznik czasu w milisekundach, następnie 4-bitową wersję 0111, potem 12 bitów losowych, następnie 2-bitowy wariant 10, a na końcu kolejne 62 bity losowe. Ponieważ znacznik czasu znajduje się w najbardziej znaczących bitach, UUID-y v7 sortują się leksykograficznie w kolejności generowania — cecha, której żadna inna wersja UUID nie zapewnia bez dodatkowego kodowania.
    4. Cała losowość pochodzi z crypto.getRandomValues(), czyli kryptograficznie bezpiecznego RNG przeglądarki. Zarówno v1, jak i v7 zawierają zabezpieczenie monotoniczne wewnątrz pojedynczego taktu, więc dwa kolejne wywołania w tym samym takcie zegara nadal sortują drugą wartość ponad pierwszą — kluczowe dla generowania hurtowego wyprzedzającego zegar milisekundowy.
    5. Po wygenerowaniu uruchamia się potok formatowania. Możesz usunąć myślniki, przełączyć się na wielkie litery, otoczyć wartość nawiasami klamrowymi ({…} — konwencja Microsoft GUID) lub przedstawić surowe 16 bajtów jako base64 (22 znaki, bez wyrównania). Tryb base64 nadpisuje pozostałe opcje formatu, ponieważ base64 jest osobną reprezentacją.

    Dlaczego używać tego generatora UUID?

    • Nic nie opuszcza Twojej przeglądarki. API Web Crypto działa lokalnie; po wstępnym załadowaniu dokumentu strona nie wykonuje żadnego żądania sieciowego. Otwórz DevTools, kliknij Generuj, a panel Sieć pozostanie cichy.
    • Wynik zgodny z RFC. v4 podąża za RFC 4122 §4.4, v1 za §4.2 i §4.5, a v7 za RFC 9562 §5.7. Półbajt wersji i bity wariantu są umieszczone tam, gdzie wymagają tego standardy — każdy UUID przechodzi kanoniczną walidację wyrażenia regularnego dla danej wersji.
    • Sortowalny v7 do kluczy bazodanowych. UUID v7 użyty jako klastrowy klucz główny w Postgres, MySQL lub SQL Server utrzymuje wstawki w trybie append na indeksie — bez page splits, bez losowego I/O — pozostając globalnie unikalnym. v4 tego nie potrafi, ponieważ jego bity są losowe.
    • Generowanie hurtowe bez limitów. Wygeneruj 1, 10, 100 lub 1 000 UUID-ów naraz. Brak limitów, brak rejestracji — narzędzie działa w Twojej karcie, więc górną granicą jest Twój procesor, nie plan API dostawcy.

    Jakie są typowe zastosowania UUID?

    UUID-y pojawiają się tam, gdzie system potrzebuje globalnie unikalnego identyfikatora bez koordynacji z centralnym urzędem:

    • Klucze główne baz danych. Liczniki auto-increment ujawniają liczbę wierszy i psują sharding. UUID-y są stabilne między shardami, bezpieczne do scalania między regionami, a (z v7) utrzymują wstawki w B-drzewie w gorącym obszarze bez page splits. Typowa aplikacja generuje UUID po stronie klienta, wysyła go w INSERT i nigdy nie wykonuje round-tripu do serwera tylko po klucz.
    • Identyfikatory korelacji żądań. Middleware HTTP dołącza UUID v4 do każdego przychodzącego żądania, loguje go w każdym spanie i propaguje w dół (często jako nagłówek X-Request-Id). Gdy klient zgłasza błąd, inżynier wsparcia wkleja identyfikator i cały ślad żądania — między usługami i strefami czasowymi — pojawia się bez dwuznaczności.
    • Klucze idempotentności. API płatności (Stripe, Adyen, Square) akceptują nagłówek Idempotency-Key, dzięki czemu ponowione żądanie nigdy nie obciąży klienta dwukrotnie. UUID wygenerowany po stronie klienta gwarantuje unikalność klucza dla każdej operacji logicznej — dokładnie tego wymaga kontrakt tych API.

    Jak wygląda przykład UUID?

    W Node.js lub nowoczesnej przeglądarce jednolinijka crypto.randomUUID() zwraca świeży UUID v4 — na przykład 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12. Użyj go jako identyfikatora żądania lub klucza idempotentności. Gdy UUID trafia do kolumny bazy danych, która będzie klastrowym kluczem głównym, generuj zamiast tego v7: dwie wartości v7 wytworzone w odstępie milisekundy, jak 0190a3b0-7d4f-7c9e-8b21-a4d6f0bd9c11 i 0190a3b0-7d50-7f15-9c4e-72b3e0c1d8a4, sortują się leksykograficznie zgodnie z kolejnością generowania. Typ uuid w Postgresie przechowuje obie wersje identycznie — różnica ujawnia się przy zapisie indeksu, gdzie v7 dopisuje się po prawej stronie B-drzewa, a v4 rozprasza wstawki i wymusza losowe I/O.

    Ten generator UUID robi jedną rzecz: zmienia kliknięcie w jeden lub wiele identyfikatorów zgodnych z RFC, sformatowanych tak jak chcesz, bez wysyłania Twojego żądania do żadnego serwera. Wybierz wersję, wybierz liczbę, wybierz format — generuj, kopiuj, działaj dalej.