Generare valori UUID v4 casuali
Un UUID versione 4 è un valore a 128 bit in cui 122 bit provengono da una sorgente casuale crittograficamente sicura. I restanti 6 bit indicano la versione e la variante RFC: per questo ogni UUID v4 ha un 4 all'inizio del terzo gruppo.
Esempio svolto
- Byte casuali in ingresso
- 9d 41 7c 02 e8 5b 13 f6 2a 7e c1 94 06 d3 b8 5f
- Risultato
- 9d417c02-e85b-43f6-aa7e-c19406d3b85f
| UUID generati | Probabilità di almeno un duplicato |
|---|---|
| 10⁶ | ≈ 9,4 × 10⁻²⁶ |
| 10⁹ | ≈ 9,4 × 10⁻²⁰ |
| 10¹² | ≈ 9,4 × 10⁻¹⁴ |
| 10¹⁵ | ≈ 9,4 × 10⁻⁸ |
UUID necessari per il 50% di probabilità di duplicato: ≈ 2,71 × 10¹⁸
Come funziona
- Il generatore riempie 16 byte con dati casuali sicuri, poi imposta il nibble alto del byte 6 a 4 (versione) e i due bit più alti del byte 8 a 10 (variante). Il terzo gruppo inizia quindi con 4 e il quarto con 8, 9, a o b.
- Con 2¹²² valori possibili, l'approssimazione del compleanno p ≈ 1 − e^(−n²/2¹²³) fornisce la probabilità che n UUID casuali contengano almeno un duplicato.
- Un UUID v4 non rivela timestamp né dati hardware. Usalo come identificatore, non come password o segreto di autenticazione.
Genera da 1 a 100 UUID alla volta
Informazioni sugli UUID
UUID v1: UUID basati sul tempo che includono un timestamp e l'indirizzo MAC del computer che genera l'UUID. Utile quando è necessario sapere quando è stato creato l'UUID.
UUID v4: UUID generati casualmente. Questa è la versione più comunemente utilizzata e fornisce una buona unicità con una perdita minima di informazioni.
UUID v5: UUID basati sul nome utilizzando l'hashing SHA-1. Dato lo stesso namespace e nome, otterrai sempre lo stesso UUID. Utile per la generazione deterministica di UUID.