raatools/

Generator UUID

Generuj losowe UUID v4 — jeden lub więcej.

1

Czym jest UUID?

UUID (Universally Unique Identifier, Powszechnie Unikalny Identyfikator) to 128-bitowa liczba używana do unikalnej identyfikacji informacji w systemach rozproszonych bez potrzeby centralnego organu. UUID są standaryzowane w RFC 4122 i są używane wszędzie — od kluczy głównych baz danych i śledzenia żądań API po zarządzanie sesjami i nadawanie nazw plikom.

Standardowy format UUID to 36 znaków z czterema łącznikami: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, gdzie M wskazuje wersję (1–5), a N wskazuje wariant. Najczęściej używaną wersją jest UUID v4, który generuje identyfikatory przy użyciu kryptograficznej losowości. To narzędzie domyślnie generuje UUID v4.

Format UUID v4

UUID v4 używa 122 losowych bitów (pozostałe 6 bitów koduje wersję i wariant). Format to xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, gdzie każde x to losowa cyfra szesnastkowa, a y to jedna z cyfr 8, 9, A lub B. Cyfra 4 w trzeciej grupie identyfikuje go jako wersję 4. Każdy UUID v4 jest generowany niezależnie przy użyciu kryptograficznej losowości.

Jak korzystać z tego narzędzia

Kliknij przycisk generowania, aby utworzyć nowy UUID v4. Każde kliknięcie generuje świeży, kryptograficznie losowy identyfikator. Możesz generować wiele UUID jednocześnie do operacji wsadowych. Kliknij przycisk kopiowania, aby skopiować UUID do schowka i użyć go w kodzie, konfiguracjach lub bazach danych.

Typowe przypadki użycia UUID

  • Klucze główne baz danych: UUID umożliwiają systemom rozproszonym niezależne tworzenie rekordów bez kolizji kluczy, w odróżnieniu od automatycznie inkrementowanych liczb całkowitych, które wymagają koordynacji.
  • Identyfikatory żądań API: Dołącz UUID do każdego żądania API do śledzenia end-to-end w mikroserwisach.
  • Tokeny sesji: Twórz unikalne identyfikatory sesji, których nie można odgadnąć.
  • Nazwy plików: Generuj unikalne nazwy plików, aby zapobiec kolizjom, gdy wielu użytkowników przesyła pliki jednocześnie.
  • Klucze idempotentności: Używaj UUID w API płatności, aby zapewnić, że ta sama transakcja nie zostanie przetworzona dwukrotnie.

Prawdopodobieństwo kolizji

UUID v4 ma 122 losowe bity, dając 5,3 × 10³⁶ możliwych wartości. Prawdopodobieństwo wygenerowania dwóch identycznych UUID jest astronomicznie małe. Musiałbyś wygenerować 2,71 × 10¹⁸ UUID (2,71 kwintyliona), zanim osiągnięcie 50% prawdopodobieństwa pojedynczej kolizji. W praktyce kolizje nie są realistycznym problemem dla żadnej aplikacji.

Zerowy UUID

Zerowy UUID (00000000-0000-0000-0000-000000000000) to specjalna wartość zdefiniowana w RFC 4122 jako placeholder lub wartość domyślna. Niektóre aplikacje używają go do reprezentowania „brak wartości

Porównanie wersji UUID

UUID v1 używa bieżącego znacznika czasu i adresu MAC urządzenia — szybki, ale może ujawniać informacje o urządzeniu. UUID v3 i v5 generują deterministyczne UUID z przestrzeni nazw i nazwy używając odpowiednio MD5 i SHA-1. UUID v4 używa czystej losowości, oferując najlepszą kombinację unikalności, prostoty i prywatności. UUID v7 (standard roboczy) łączy prefiks znacznika czasu z losowością dla UUID sortowalnych czasowo.

Czy mój UUID jest bezpieczny?

Tak. Generowanie używa natywnego interfejsu API crypto.randomUUID() przeglądarki, który zapewnia kryptograficznie bezpieczną losowość. Całe przetwarzanie odbywa się lokalnie na Twoim urządzeniu. Żadne UUID nie są rejestrowane, przechowywane ani przesyłane na żaden serwer.

Często zadawane pytania

Czy powinienem używać UUID czy automatycznie inkrementowanych identyfikatorów?

UUID są lepsze dla systemów rozproszonych, architektur mikroserwisów i każdego scenariusza, w którym rekordy są tworzone na wielu serwerach. Automatycznie inkrementowane identyfikatory są prostsze, mniejsze (4–8 bajtów w porównaniu z 16 bajtami) i bardziej wydajne dla indeksowania baz danych. Wybierz w oparciu o swoją architekturę — scentralizowane systemy mogą używać auto-increment, systemy rozproszone korzystają z UUID.

Czy UUID muszą być przechowywane jako ciągi znaków w bazie danych?

Nie. Większość baz danych obsługuje natywny typ UUID, który przechowuje wartość jako 16 bajtów zamiast 36-bajtowej reprezentacji ciągu znaków. PostgreSQL ma typ kolumny UUID, MySQL może używać BINARY(16), a MongoDB używa własnego binarnego podtypu UUID. Używanie typów natywnych oszczędza miejsce na dysku i poprawia wydajność zapytań.