Generatore di UUID

Genera identificatori univoci UUID v4 casuali o v7 ordinabili per tempo, in blocco.

Generatori

A cosa serve un UUID

Un UUID è un identificatore lungo 128 bit costruito per essere unico senza bisogno di un'autorità centrale che lo assegni. È questa la sua ragione d'essere: due sistemi che non si parlano possono generare identificatori senza rischiare di collidere, cosa impossibile con un contatore.

v4 e v7: la differenza che conta

La versione 4 è interamente casuale. La versione 7 antepone il momento della generazione, quindi due UUID creati in istanti diversi si ordinano da soli. La differenza si vede sul database: usati come chiave primaria, i v4 sparpagliano le scritture su tutto l'indice e lo frammentano, mentre i v7 le concentrano in fondo, come farebbe un contatore. Su tabelle grandi è una differenza di prestazioni misurabile.

Quando la v7 non va bene

Proprio perché contiene l'orario, un v7 rivela quando è stato creato. Se l'identificatore è pubblico e quel momento è un'informazione da non divulgare — quando un utente si è registrato, quando un ordine è stato creato — la v4 resta la scelta giusta.

Le collisioni

Un UUID v4 ha 122 bit casuali. La probabilità di generarne due uguali resta trascurabile anche dopo miliardi di generazioni, purché la sorgente casuale sia di qualità: è per questo che qui si usa quella crittografica del browser e non una funzione casuale ordinaria.

Domande frequenti

La v7 se l'identificatore finisce come chiave su un database, perché non frammenta l'indice. La v4 se l'identificatore è pubblico e non vuoi che riveli quando è stato creato.

Sono generati con la sorgente casuale crittografica del browser, la stessa usata per le operazioni di sicurezza. Non vengono trasmessi né conservati da nessuna parte.

Strumenti correlati