Przejdź do głównej treści

Generowanie losowych wartości UUID v4

UUID w wersji 4 to 128-bitowa wartość, w której 122 bity pochodzą z kryptograficznie bezpiecznego źródła losowości. Pozostałe 6 bitów oznacza wersję i wariant RFC, dlatego trzecia grupa każdego UUID v4 zaczyna się od 4.

Przykład krok po kroku

Losowe bajty wejściowe
9d 41 7c 02 e8 5b 13 f6 2a 7e c1 94 06 d3 b8 5f
Wynik
9d417c02-e85b-43f6-aa7e-c19406d3b85f
Wygenerowane UUIDPrawdopodobieństwo co najmniej jednego duplikatu
10⁶≈ 9,4 × 10⁻²⁶
10⁹≈ 9,4 × 10⁻²⁰
10¹²≈ 9,4 × 10⁻¹⁴
10¹⁵≈ 9,4 × 10⁻⁸

Liczba UUID dla 50% szans na duplikat: ≈ 2,71 × 10¹⁸

Jak to działa

  • Generator wypełnia 16 bajtów bezpiecznymi danymi losowymi, a następnie ustawia starszą połówkę bajtu 6 na 4 (wersja) i dwa najstarsze bity bajtu 8 na 10 (wariant). Dlatego trzecia grupa zaczyna się od 4, a czwarta od 8, 9, a lub b.
  • Przy 2¹²² możliwych wartościach przybliżenie paradoksu urodzin p ≈ 1 − e^(−n²/2¹²³) podaje prawdopodobieństwo, że n losowych UUID zawiera co najmniej jeden duplikat.
  • UUID v4 nie ujawnia znacznika czasu ani danych o sprzęcie. Traktuj go jako identyfikator, a nie hasło czy sekret uwierzytelniający.
Wersja UUID

Wygeneruj od 1 do 100 UUID na raz

O UUID

UUID v1: UUID oparte na czasie, które zawierają znacznik czasu i adres MAC komputera generującego UUID. Przydatne, gdy musisz wiedzieć, kiedy UUID został utworzony.

UUID v4: Losowo generowane UUID. Jest to najczęściej używana wersja i zapewnia dobrą unikalność przy minimalnym wyciekaniu informacji.

UUID v5: UUID oparte na nazwie przy użyciu haszowania SHA-1. Przy tej samej przestrzeni nazw i nazwie zawsze otrzymasz ten sam UUID. Przydatne do deterministycznego generowania UUID.

Więcej poradników UUID