Generator UUID
Działa w całości w Twojej przeglądarce. Twoje pliki i dane nigdy nie opuszczają Twojego urządzenia.
O tym narzędziu
UUID to 128-bitowy identyfikator zapisany jako 32 cyfry szesnastkowe podzielone myślnikami, na przykład f47ac10b-58cc-4372-a567-0e02b2c3d479. Ma być na tyle unikalny, żeby dwa różne systemy mogły generować identyfikatory niezależnie, bez centralnego koordynatora, i w praktyce nigdy się nie zderzały. To narzędzie generuje UUID w wersji 4 i wersji 7, pojedynczo albo setkami naraz.
Czym różni się v4 od v7?
Wersja 4 jest całkowicie losowa: 122 bity pochodzą bezpośrednio z crypto.randomUUID() przeglądarki, a pozostałe 6 bitów jest ustalone na stałe, żeby oznaczyć wersję i wariant zgodnie z RFC 9562. Ta losowość sprawia też, że identyfikatory v4 nie dają żadnej wskazówki, kiedy i w jakiej kolejności powstały, co często jest dokładnie tym, czego potrzeba na przykład dla klucza API.
Wersja 7 wymienia część tej losowości na porządek: jej pierwsze 48 bitów to bieżący znacznik czasu Unix w milisekundach, reszta jest losowa. To oznacza, że identyfikatory wygenerowane później sortują się za tymi wygenerowanymi wcześniej, wyłącznie przez porównanie ciągów znaków, co znacznie lepiej współgra z indeksami bazodanowymi niż rozproszone wartości v4. To narzędzie buduje identyfikatory v7, wypełniając bufor kryptograficznie losowymi bajtami z Web Crypto API, a następnie nadpisując pierwsze sześć bajtów bieżącym znacznikiem czasu, więc losowa część nadal pochodzi z tego samego bezpiecznego źródła co w v4.
Której wersji powinienem użyć?
Wybierz v7, gdy identyfikatory są kluczami głównymi albo trafiają do dowolnego indeksu bazodanowego, bo w miarę sekwencyjne wartości chronią indeks przed fragmentacją. Wybierz v4, gdy zależy ci, żeby moment utworzenia nie dawał się odgadnąć na podstawie identyfikatora, na przykład dla tokenu resetu hasła albo identyfikatora sesji.
Czy to wysyła cokolwiek na serwer?
Nie. Każdy UUID powstaje w całości w przeglądarce dzięki Web Crypto API, temu samemu, którego przeglądarka używa na przykład do kluczy TLS, więc nic nigdzie nie jest wysyłane i możesz wygenerować tyle identyfikatorów, ile potrzeba do migracji bazy danych albo zestawu danych testowych, bez dotykania serwera.
Częste zastosowania poza kluczami bazodanowymi: identyfikatory żądań do logowania i śledzenia, albo dane wypełniające do testów i makiet. Zobacz dokumentację crypto.randomUUID() na MDN, żeby dowiedzieć się, jak przeglądarka generuje losowość, i RFC 9562 po pełny format, łącznie z bitami wersji i wariantu, które ustawia to narzędzie.