L'UUID té diverses versions, cadascuna amb diferents característiques:
• v1: Basat en temps i ID de node, ordenat però pot filtrar informació
• v3: Basat en nom i espai de noms, utilitza hash MD5
• v4: Generat completament a l'atzar, la versió més utilitzada
• v5: Basat en nom i espai de noms, utilitza hash SHA-1, més segur que v3
• v6: Versió millorada de v1, la part de temps s'ordena en ordre big-endian, més adequat per a l'ordenació
• v7: Nova versió basada en timestamp Unix, combina seqüència temporal i aleatorietat
Com triar la versió d'UUID adequada
Trieu la versió més adequada segons l'escenari d'ús:
• Necessitat de seguretat: Trieu v4 (aleatori) o v5 (nom basat en SHA-1)
• Necessitat d'ordenació: Trieu v6 o v7 (basat en temps i fàcil d'ordenar)
• Necessitat de determinisme: Trieu v3 o v5 (la mateixa entrada produeix la mateixa sortida)
• Necessitat de rendiment: Trieu v1 (velocitat de generació ràpida)
• Valors especials: NIL (tots 0) o MAX (tots F) per a casos límit
Aleatorietat i determinisme
L'UUID v4 és completament aleatori, adequat per a la majoria d'escenaris d'aplicació. v3 i v5 són deterministes, el mateix nom i espai de noms sempre generen el mateix UUID, adequat per a casos que necessiten un mapatge consistent. v1, v6 i v7 inclouen informació de temps, tenint seqüencialitat en condicions específiques.
Temporalitat i seqüencialitat
v1, v6 i v7 inclouen informació de temps, però la processen de maneres diferents. v6 millora els problemes d'ordenació de temps de v1, v7 utilitza timestamp Unix per oferir una seqüencialitat més simple. Si necessiteu UUID que es puguin ordenar per temps de generació, v6 i v7 són millors opcions.
Consideracions de seguretat
v1 pot filtrar temps de generació i informació del node (adreça MAC). v4 és completament aleatori, la millor opció per a escenaris sensibles a la privadesa. v3 utilitza hash MD5, menys segur que v5 que utilitza SHA-1. NIL i MAX són valors fixos, no s'han d'utilitzar en escenaris de seguretat que necessitin unicitat.
L'UUID s'utilitza principalment en escenaris que necessiten identificadors únics globals: sistemes distribuïts, claus principals de bases de dades, identificadors de sessió, noms de fitxer, tokens d'API, etc. Triar la versió adequada pot optimitzar el rendiment, la seguretat i l'organització de dades.