Què és un UUID v4 i com funciona aquesta generador en línia
Un UUID v4 és un identificador universal únic (Universally Unique Identifier) definit per l’estàndard RFC 4122 que utilitza 122 bits d’aleatorietat generats de manera criptogràfica. Es representa com una cadena de 36 caràcters en el format 8-4-4-4-12, és a dir, 32 dígits hexadecimals agrupats per guions. Per exemple: 550e8400-e29b-41d4-a716-446655440000.
Aquesta pàgina permet generar entre 1 i 100 UUID v4 a la vegada, amb l’opció de mostrar-los en majúscules o minúscules i amb o sense guions. El procés es fa íntegrament al navegador de l’usuari, sense enviar cap dada al servidor. En modificar qualsevol opció (nombre, majúscules, guions) es regenera automàticament tot el conjunt de codis. Això significa que cada canvi produeix un joc completament nou d’identificadors aleatoris.
L’estructura interna d’un UUID v4 reserva bits concrets per indicar la versió i la variant. El camp de versió (4 bits) es fixa a 0100 (valor 4 en decimal) i el camp de variant (2 bits) es fixa a 10. Això redueix els bits aleatoris de 128 a 122, però garanteix la compatibilitat amb l’estàndard. La representació hexadecimal segueix el patró xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, on x són dígits hexadecimals aleatoris i y és un dígit que codifica la variant (normalment 8, 9, a o b).
Què fa diferent aquesta eina respecte a altres generadors
Altres generadors d’identificadors ofereixen formats com UUID v7, ULID o NanoID, cadascun amb les seves compensacions. La característica clau del UUID v4 és que no incorpora cap informació temporal: tots els bits aleatoris són independents del moment de generació. Això el fa ideal per a situacions on es requereixi impredictibilitat absoluta, com en tokens de sessió, contrasenyes d’un sol ús o identificadors d’anònims.
La contrapartida és que, a diferència de UUID v7 (que incrusta un timestamp de 48 bits) o ULID (que combina temps amb aleatorietat), els UUID v4 s’ordenen arbitràriament. Quan s’utilitzen com a claus primàries en bases de dades relacionals, aquesta manca d’ordre cronològic pot provocar fragmentació dels índexs i un rendiment degradat en operacions d’inserció massiva. L’eina no amaga aquesta limitació: si el vostre cas d’ús requereix ordenació per temps, hauríeu de considerar els altres formats que ofereix la pàgina.
A més, la pàgina ofereix controls precisos sobre el format de sortida: triar majúscules o minúscules i incloure o suprimir els guions. Aquestes opcions afecten només la presentació, no la representació interna (els bits aleatoris són idèntics). Per defecte, l’eixida és en minúscules amb guions, que és la forma canònica segons RFC 4122. Quan es desactiven els guions, s’obté una cadena contínua de 32 dígits hexadecimals, útil per a sistemes que requereixen identificadors sense caràcters especials.
Opcions de personalització: majúscules, guions i nombre de codis
L’eina permet ajustar tres paràmetres:
- Nombre d’identificadors: un valor enter entre 1 i 100 (ambdós inclosos). Si s’introdueix un nombre fora d’aquest rang, no es generen resultats. El recompte es mostra a la dreta de la llista.
- Majúscules: un interruptor booleà que, si està actiu, transforma tots els dígits hexadecimals (a-f) a majúscules (A-F). Per defecte està desactivat. Exemple en majúscules:
550E8400-E29B-41D4-A716-446655440000. - Incloure guions: un interruptor booleà que mostra o oculta els guions (separadors entre els grups de 8, 4, 4, 4 i 12 caràcters). Per defecte està activat. Sense guions:
550e8400e29b41d4a716446655440000.
Qualsevol canvi en qualsevol d’aquests controls regenera immediatament el conjunt complet d’identificadors. No hi ha cap botó de «generar» separat; la interacció és reactiva.
La llista resultant es mostra en pantalla amb cada identificador en una línia. Per copiar un sol UUID, feu clic damunt seu; el navegador l’enviarà al porta-retalls i es mostrarà un missatge d’estat (per exemple, «Copiat!»). Per copiar tots els identificadors, feu clic al botó «Copiar tot»; aleshores es mostra un missatge «Copiat tots!» i es copia la llista completa, un UUID per línia.
L’eina mostra tres estats: «A punt.» inicialment, «Generat.» després de cada regeneració i «Copiat tots!» en enganxar tots els codis.
Seguretat, privacitat i qualitat de l’aleatorietat
Tota la generació d’UUID v4 es fa localment al navegador de l’usuari, utilitzant l’API crypto.getRandomValues(). Aquesta API proporciona nombres aleatoris criptogràficament forts, adequats per a aplicacions sensibles com la generació de tokens de seguretat, claus de sessió o contrasenyes temporals. No es fa cap connexió a internet ni es transfereix cap dada a cap servidor; el procés és completament offline un cop la pàgina s’ha carregat.
L’ús de la funció crypto.getRandomValues() garanteix una font d’entropia basada en el sistema operatiu del client, que inclou fonts d’aleatorietat com la latència de dispositius, el soroll del sistema o instruccions de CPU especialitzades (p. ex., RDRAND). A diferència de Math.random(), que no és criptogràficament segur, aquesta API compleix amb els requisits del generador de nombres pseudoaleatoris criptogràfic.
Per als usuaris que treballen en entorns on la privacitat és crític, aquest model local és un avantatge important: no cal confiar en cap servidor extern per a la generació d’identificadors potencials de seguretat. A més, el fet que les opcions (majúscules, guions) només afectin la representació visual significa que la cadena subjacent és la mateixa independentment de la configuració escollida.
Probabilitat de col·lisió i implicacions pràctiques
Un UUID v4 conté 122 bits d’aleatorietat real. Per calcular la probabilitat de col·lisió en un conjunt d’identificadors, s’aplica la paradoxa de l’aniversari: la probabilitat d’almenys una coincidència en n valors aleatoris és aproximadament n^2 / (2^(123)). Amb 122 bits, per arribar a una probabilitat de col·lisió del 50% calen aproximadament 2,71 × 10^18 identificadors. En termes pràctics, per a qualsevol generació raonable (fins a 100 per petició), el risc de duplicats és negligible.
No obstant això, cal tenir en compte que la probabilitat de col·lisió no és zero. Si un sistema genera milers de milions d’UUID v4 al llarg del temps, eventualment la probabilitat es torna rellevant. Per a aplicacions amb requisits extrems de no-repetició (com sistemes de fitxers distribuïts), es recomana emmagatzemar els identificadors en una base de dades i comprovar duplicats.
Un error freqüent és pensar que els UUID v4 ordenats cronològicament com a claus primàries en bases de dades tenen un rendiment similar al de claus seqüencials. La realitat és que, degut a l’absència d’ordre temporal, cada inserció d’un nou UUID v4 pot anar a qualsevol pàgina de l’índex, provocant nombroses divisions de pàgines (page splits) i fragmentació. Eines de bases de dades com PostgreSQL ofereixen tipus específics per a UUID, i els administradors de bases de dades sovint combinen UUID v4 amb índexs agrupats per temps o utilitzen UUID v7 com a alternativa.
Casos d’ús recomanats i limitacions
El UUID v4 és la millor opció quan es necessita un identificador únic i impredictible sense cap relació amb el moment de creació. Exemples típics:
- Tokens d’autenticació o autorització (access tokens, refresh tokens).
- Identificadors d’anònim en enquestes o dades de recerca.
- Claus primàries en sistemes distribuïts on la sincronització de rellotges és difícil.
- Identificadors per a registres de logs o events que no requereixen ordenació temporal.
- Generació de noms d’arxiu o directoris temporals.
En canvi, no és recomanable per a:
- Claus primàries en bases de dades relacionals amb volum alt d’insercions (es prefereix UUID v7, ULID o seqüències clàssiques).
- Sistemes on l’ordenació cronològica és essencial per a consultes eficients.
- Interfícies d’usuari on es mostren identificadors curts (el UUID v4 té 36 caràcters; millor NanoID).
La pàgina permet generar fins a 100 fitxes per petició, però si necessiteu més, podeu fer múltiples peticions; cada una serà independent i proporcionarà un conjunt nou de codis. No hi ha límit de repeticions.
Preguntes freqüents sobre el generador de UUID v4
1. Puc utilitzar aquests UUID per a tokens de sessió a producció?
Sí, sempre que el navegador estigui actualitzat i tingui accés a crypto.getRandomValues(). Els valors generats són criptogràficament segurs. No obstant, assegureu-vos que el token es maneja amb HTTPS i es valida al servidor amb el mateix nivell d’aleatorietat.
2. Què passa si introdueixo 0 o 101 com a nombre d’identificadors? L’eina accepta només valors entre 1 i 100. Si introduïu un nombre fora d’aquest rang, no es generarà res i es mostrarà l’estat «A punt.» sense cap canvi.
3. Canviar les majúscules o els guions altera la probabilitat de col·lisió? No. La representació en majúscules o sense guions és una transformació pura de la cadena hexadecimal. Els 122 bits subjacents són idèntics. Per tant, la probabilitat de col·lisió no canvia.
4. Puc copiar un sol UUID fent clic? Sí. Feu clic sobre qualsevol identificador de la llista; automàticament es copia al porta-retalls del sistema i es mostra un missatge de confirmació.
5. Quina diferència hi ha entre UUID v4 i UUID v7 que també ofereix la pàgina? UUID v7 incorpora un timestamp de 48 bits, de manera que els identificadors generats estan ordenats cronològicament. UUID v4 no té cap ordre previsible. Per a claus primàries de bases de dades, v7 redueix la fragmentació de l’índex. Per a seguretat, v4 és preferible perquè no revela informació temporal.
6. Es poden generar UUID v4 en lots superiors a 100? L’eina té un límit de 100 per cada generació. Si necessiteu més, podeu prémer el botó de generar diverses vegades. Cada conjunt és independent i aleatori, sense cap relació amb els anteriors.