Generador UUID
Opcions de format
Nombre generat
Generador UUID/GUID/ULID/NanoID en línia gratuït que admet 5 formats d'ID únics, generació massiva de fins a 100, format personalitzable i validació UUID. A punt per utilitzar instantàniament: perfecte per a claus primàries de bases de dades i creació de dades de prova.
Relacionats
Què és un UUID?
UUID (Universally Unique Identifier) és un identificador de 128 bits estandarditzat per l'Open Software Foundation (OSF), definit a RFC 4122. El seu propòsit és permetre que els sistemes distribuïts identifiquin informació de manera única sense una autoritat central per a l'assignació d'ID.
Un UUID estàndard té l'aspecte de `550e8400-e29b-41d4-a716-446655440000`, compost per 32 dígits hexadecimals dividits en 5 grups (8-4-4-4-12) per guions. Teòricament, la probabilitat de col·lisió d'UUID v4 és d'aproximadament 1/10^36: si generéssiu 1 mil milions d'UUID per segon durant uns 800 anys, la probabilitat d'una sola col·lisió seria aproximadament del 50%, que és negligible a la pràctica.
Els UUID s'utilitzen àmpliament per a claus primàries de bases de dades, identificadors de traça distribuïda, ID de sol·licitud, ID de traça de registres, nomenclatura única de fitxers, ID de dades de prova i identificadors de sessió. Gairebé tots els llenguatges de programació principals inclouen biblioteques de generació UUID integrades.
Casos d'ús
- Genereu UUID v4 com a claus primàries de registres de taula durant el disseny de bases de dades per evitar filtracions de volum de dades dels ID autoincrementals
- Utilitzeu ULID com a identificadors globals de sol·licitud/traça ordenables en sistemes distribuïts o arquitectures de microserveis
- Genereu UUID en massa com a dades de prova i com a identificadors simulats de comandes/usuaris durant el desenvolupament d'API i proves d'integració
- Utilitzeu NanoID en lloc d'UUID en enllaços curts de frontend o URL de compartició: més curt, més net, no cal codificació URL
- Utilitzeu UUID v5 per generar ID deterministes a partir d'espais de noms fixos, assegurant que la mateixa entrada sempre produeixi la mateixa sortida
- Utilitzeu la funció de validació per identificar el tipus i versió d'ID quan trobeu identificadors de format desconegut en registres de depuració o documentació de tercers
Com usar-ho
- Seleccioneu el tipus d'ID desitjat de les targetes superiors: UUID v4 (recomanat), v1, v5, ULID o NanoID
- Si trieu UUID v5, introduïu una cadena d'espai de noms; altres ID poden establir opcions de format directament
- Commuteu les opcions de majúscules i guions segons calgui, establiu el recompte de generació massiva (1-100) mitjançant botons ràpids o control lliscant
- Feu clic al botó de generar per veure els resultats: copieu individualment, copieu tot alhora o exporteu com a TXT/JSON
- Per validar un ID existent, canvieu a la pestanya "Valida" i enganxeu la cadena de l'ID per obtenir informació de tipus i versió
Característiques
- Cinc tipus d'ID en una sola eina: UUID v1 (marca de temps), v4 (aleatori), v5 (espai de noms), ULID (ordenable) i NanoID (segur per a URL): una eina cobreix totes les necessitats de l'stack tecnològic
- Validació i reconeixement d'UUID: canvieu a la pestanya Valida, enganxeu qualsevol ID per identificar la seva versió UUID o detectar format ULID/NanoID: resolució ràpida de problemes durant la depuració
- Generació massiva de fins a 100: genereu qualsevol quantitat d'1 a 100 identificadors alhora, ja no cal copiar manualment un per un per a dades de prova
- Format flexible: commuta majúscules i guions per als UUID per adaptar-vos als requisits de format de bases de dades, URL i fitxers de configuració
- Exportació i historial local: copia tot amb un clic, exporta fitxers TXT/JSON, historial de generació desat localment per a recuperació instantània: operacions massives més eficients
- Aleatori segur del costat del client: utilitza l'API crypto del navegador per a nombres aleatoris criptogràficament segurs, els ID mai surten del vostre dispositiu, funciona fora de línia
Exemples de codi
Generar UUID v4 en JavaScript
javascriptEls navegadors moderns i Node.js 14.17+ tenen l'API Web Crypto integrada, permetent la generació directa de UUID v4 sense biblioteques de tercers.
// Navegadors moderns / Node.js 19+
const id = crypto.randomUUID();
console.log(id); // "550e8400-e29b-41d4-a716-446655440000"
// Node.js 14.17 - 18.x
const crypto = require('crypto');
const id = crypto.randomUUID();Generar UUID en massa en Python
pythonUtilitzeu el mòdul uuid de la biblioteca estàndard de Python per generar diversos UUID v4 en massa, ideal per a preparació de dades de prova.
import uuid
# Generar un sol UUID
uid = uuid.uuid4()
print(uid)
# Generar 10 UUID en massa
for _ in range(10):
print(uuid.uuid4())
# Generar UUID en majúscules sense guions
print(uuid.uuid4().hex.upper())Generar UUID des de la línia d'ordres Shell
bashGenereu UUID ràpidament al terminal Linux/macOS, adequat per utilitzar en scripts de shell.
# Linux uuidgen # macOS uuidgen | tr 'A-Z' 'a-z' # Lectura directa des del fitxer aleatori del sistema (mètode més pur) cat /proc/sys/kernel/random/uuid
Quin esquema d'ID únic triar?
UUID no és l'única opció — l'ID auto-incremental de la base de dades i Snowflake també són esquemes de clau principal habituals. Primer avalueu «l'escala de dades, si cal unicitat global, si cal ordenació per temps» i després trieu l'esquema concret — això evitarà molts entrebancs.
UUID v1 / v4 / v5 / ULID / NanoID: quin triar?
Els 5 tipus d'ID tenen diferents compromisos en escala de dades, ordenabilitat i longitud de caràcters. Preneu decisions basant-vos en «on s'usa + si cal ordenació + si s'usa directament a URL», és més fiable que triar pel propi nombre.
| Esquema | Escenari recomanat | Ordenabilitat | Longitud | Recomanació |
|---|---|---|---|---|
UUID v1 | Sistemes interns que necessiten ordenació per temps i accepten la revelació de l'adreça MAC i el temps de generació | Ordenat per temps | 36 caràcters | ⚠ Normalment no recomanat (revelació de privadesa) |
UUID v4 | Clau principal de base de dades, identificadors generals, la majoria d'escenaris de negoci | Sense ordre (aleatori) | 36 caràcters | ✓ Primera elecció universal |
UUID v5 | Escenaris que requereixen sortida determinista (mateixa entrada → mateix UUID) | Sense ordre | 36 caràcters | ✓ Recomanat amb espai de noms fix |
ULID | Clau principal de sistemes distribuïts, traçat de logs, índexs que requereixen ordenació per temps | Ordenat per temps (els primers 48 bits són marca de temps en mil·lisegons) | 26 caràcters | ✓ Primera elecció per a sistemes distribuïts |
NanoID | URLs curtes, identificadors de cookie, referències JS al frontend | Sense ordre (aleatori) | 21 caràcters (per defecte) | ✓ Primera elecció per a IDs curts |
UUID vs ID auto-incremental de BD vs Snowflake ID: com triar l'esquema de clau principal?
Aquests tres esquemes són les opcions més habituals per a claus principals de backend, determinant l'escalabilitat, la seguretat de concurrència i les característiques de rendiment del sistema. Les decisions basades en «escala de dades / requisit d'unicitat global / requisit de llegibilitat» eviten ajustos arquitectònics posteriors.
| Dimensió | UUID | ID auto-incremental BD | Snowflake |
|---|---|---|---|
Unicitat global | ✓ Sí (teòricament) | ✗ No (l'sharding provocarà duplicats) | ✓ Sí (garantit per data center + worker ID) |
Revelació de volum de dades | ✓ No revela | ✗ Revela directament (l'increment 1, 2, 3 exposa el volum real) | ⚠ El bit de temps revela el temps de generació (no revela directament el volum total) |
Ordenabilitat | ✗ Sense ordre (excepció ULID) | ✓ Monòtonament creixent (amigable amb B-Tree) | ✓ Creixent amb tendència (ordenat dins del mateix mil·lisegon) |
Sharding de BD | ✓ Suport natural | ✗ Requereix generador de números o reformes | ✓ Diferenciat per worker ID |
Cost d'emmagatzematge | ⚠ Alt (BINARY(16) 16 bytes) | ✓ Baix (BIGINT 8 bytes) | ✓ Baix (BIGINT 8 bytes) |
Escenaris adequats | Claus principals multiservei/distribuïdes, identificadors externs, negoci sensible al volum de dades | Aplicacions monolítiques, sistemes d'administració backend, sense necessitat d'unicitat global | IM d'alta concurrència, números de comanda, IDs de missatges (cal implementar-ho un mateix) |
Best Practices
Per a claus principals de bases de dades en producció, prioritzeu UUID v4 o ULID, eviteu v1
Els últims 48 bits d'UUID v1 són l'adreça MAC, els primers 48 bits són una marca de temps amb precisió de 100ns — **aquests dos camps es poden reconstruir com a empremta de màquina i temps de generació**. A RFC 4122 ja s'indica clarament que v1 s'ha d'utilitzar «només quan cal compatibilitat enrere». En entorns de producció s'ha de prioritzar v4 (aleatori) o ULID (ordenable), v1 només s'usa ocasionalment en depuració o quan cal traçar la màquina generadora. **Mai** utilitzeu v1 com a ID d'usuari exposat, ID de dispositiu o número de comanda.
Com triar entre UUID v1, v4 i v5?La longitud d'UUID de 128 bits ≠ entropia: v4 només té realment 122 bits
Tot i que UUID v4 té una longitud total de 128 bits, **els 4 primers bits són el número de versió (fixat a 0100), els 2 últims bits són el número de variant (fixat a 10)**, els bits realment aleatoris són només 122. Aquesta és la restricció de format imposada per RFC 4122, **qualsevol biblioteca UUID v4 que afirmi que «128 bits són completament aleatoris» és una implementació incorrecta**. A més, en els últims 64 bits d'v4, els 2 bits alts del 7è byte també són el camp de variant, l'entropia real és encara menor. Dissenyeu el sistema calculant la seguretat sobre 122 bits (no 128), per no subestimar el risc de col·lisió.
RFC 4122 - Especificació UUIDPer emmagatzemar UUID, utilitzeu obligatòriament una columna BINARY(16) en lloc de VARCHAR(36)
La cadena UUID v4 `550e8400-e29b-41d4-a716-446655440000` sembla compacta, però VARCHAR(36) realment emmagatzema 36 bytes + 2 bytes de longitud = 38 bytes, **2,4 vegades més espai d'emmagatzematge que BINARY(16)**. MySQL/PostgreSQL/MSSQL disposen de funcions UUID integrades que admeten l'escriptura directa a BINARY(16), la mida de l'índex també es redueix a la meitat. Quan la taula supera els 100 milions de files, l'índex de clau principal VARCHAR(36) fa que l'alçada del B-Tree augmenti 1-2 nivells, **el rendiment de les consultes baixa un 30-50%**. Al frontend convertiu a cadena en mostrar, la capa de negoci transmet consistentment BINARY(16).
Taula comparativa UUID / ULID / NanoIDEn escenaris URL, utilitzeu NanoID o UUID sense guions, eviteu la codificació URL
El joc de caràcters d'UUID v4 és `[0-9a-f-]`, **el guió - al camí URL requereix doble codificació URL** (primer s'escapa a %2D, després a %252D), queda molt lleig. Dues solucions: **(1) en escenaris URL utilitzeu directament NanoID** (per defecte 21 caràcters segurs per a URL); **(2) UUID v4 + desactiveu els guions** per obtenir 32 bits hex purs, com a segment de camí URL no cal codificar. En escenaris de cookie també prioritzeu NanoID (A-Za-z0-9_-) o UUID sense guions, evitant els caràcters `+` `/` `=` (joc de caràcters Base64).
Puc eliminar els guions o posar l'UUID en majúscules?Després de la generació massiva, sempre feu desduplicació, els errors del generador poden causar duplicats
La probabilitat de col·lisió d'UUID v4 és d'uns 1/10^36, teòricament no cal desduplicar — **però en enginyeria no us fie de la teoria**. Fallades de l'RNG del nucli de Linux, errors d'implementació de `crypto.randomUUID` en versions antigues de Node.js, font d'entropia insuficient en iniciar una Cloud VM i altres incidents reals han provocat que UUID generats massivament continguin duplicats. **En entorns de producció, després de generar massivament més de 100.000 UUID, cal fer una verificació de desduplicació amb `SELECT id, COUNT(*) FROM t GROUP BY id HAVING COUNT(*) > 1`**, si es detecten problemes, feu rollback immediat de la versió del generador. Aquesta és la millor pràctica après lliçons apreses amb sang en escenaris de migració de dades i importació massiva.
Puc generar diversos UUID alhora?Preguntes freqients
Quina diferència hi ha entre UUID i GUID?
UUID (Universally Unique Identifier) i GUID (Globally Unique Identifier) són essencialment el mateix amb noms diferents: UUID és el nom formal de l'estàndard IETF (RFC 4122), mentre que GUID és el terme preferit de Microsoft a l'ecosistema Windows. Tots dos comparteixen el format idèntic de 128 bits com `550e8400-e29b-41d4-a716-446655440000`. Els UUID estàndard generats per aquesta eina funcionen indistintament en qualsevol escenari que requereixi GUID.
Com triar entre UUID v1, v4 i v5?
UUID v1 es basa en marca de temps i adreça MAC: ordenat per temps i traçable, però pot filtrar informació de l'adreça MAC. UUID v4 és completament aleatori, l'opció més utilitzada i segura, adequada per a la majoria d'escenaris de claus primàries i identificadors. UUID v5 és una versió amb espai de noms basada en hash SHA-1: el mateix espai de noms + el mateix nom sempre produeix el mateix UUID, ideal per a escenaris de sortida determinista. Per al desenvolupament general, UUID v4 és l'opció per defecte.
Quins avantatges tenen ULID i NanoID respecte a UUID v4?
ULID (26 caràcters) és més curt que UUID (36 caràcters amb guions) i es pot ordenar lexicogràficament per temps de creació, fent-lo ideal per a índexs de bases de dades i traça de registres. NanoID (21 caràcters per defecte) és encara més curt i ràpid, utilitza caràcters segurs per a URL, de manera que no cal escapar-los en URL i galetes: és aproximadament un 30% més petit que UUID. Tots tres tenen una probabilitat de col·lisió negligible, però l'ordenabilitat d'ULID brilla en sistemes distribuïts, mentre que NanoID és més amigable per a escenaris de frontend/URL.
Puc generar diversos UUID alhora?
Sí. Aquesta eina admet generació massiva d'1 a 100 identificadors. Establiu el recompte mitjançant botons ràpids o el control lliscant i genereu amb un sol clic: perfecte per a creació de dades de prova, importacions massives i preparació d'identificadors únics per a scripts. Després de generar, podeu copiar tots els resultats alhora o exportar com a fitxers TXT o JSON.
Guia de generació massivaPuc validar si una cadena és un UUID vàlid?
Sí. Canvieu a la pestanya "Valida" i enganxeu qualsevol cadena: l'eina identifica i valida automàticament: els UUID estàndard (v1/v3/v4/v5) informaran del seu número de versió específic, i també reconeix els formats ULID (Crockford Base32 de 26 caràcters) i NanoID (caràcters segurs per a URL de 21 caràcters), fent-la molt convenient per resoldre ràpidament problemes de format d'ID durant el desenvolupament i la depuració.
És segur generar UUID en línia? Els meus identificadors es filtraran a un servidor?
Completament segur. Tota la generació i validació d'ID s'executa localment al vostre navegador mitjançant JavaScript, utilitzant crypto.getRandomValues() per a nombres aleatoris criptogràficament segurs. Cap identificador generat s'envia a cap servidor, i cap historial de generació s'emmagatzema al núvol. Funciona fins i tot quan esteu fora de línia, fent-lo adequat per a intranets empresarials i projectes sensibles.
Puc eliminar els guions o convertir els UUID a majúscules?
Sí. Per a UUID v1/v4/v5, l'eina proporciona dos commutadors: "Majúscules" commuta el cas de sortida, i "Guions" us permet eliminar els guions (útil per a URL, fitxers de configuració o bases de dades que requereixen format sense guions). ULID i NanoID no tenen guions per defecte i també admeten commutació de cas.
Per què utilitzar una eina en línia en lloc de la línia d'ordres per generar UUID?
Les eines de línia d'ordres (com uuidgen de Linux, el mòdul uuid de Python) requereixen un entorn de desenvolupament. Una eina en línia funciona instantàniament al navegador sense necessitat d'instal·lació. A més, aquesta eina integra reconeixement de versió UUID, exportació massiva i funcions d'historial local: més convenient quan treballeu entre dispositius (per exemple, generant identificadors per a col·legues no tècnics) o quan necessiteu identificadors ràpidament.
Glossari
- UUID
- Universally Unique Identifier, longitud de 128 bits, estàndard RFC 4122, les versions habituals inclouen v1 (marca de temps+MAC), v4 (aleatori), v5 (hash SHA-1).
- GUID
- Globally Unique Identifier, terme de Microsoft per a UUID: tots dos són idèntics en format i propòsit.
- ULID
- Universally Unique Lexicographically Sortable Identifier, 26 caràcters utilitzant codificació Crockford Base32, els primers 48 bits són marca de temps: ordenable per temps de creació.
- NanoID
- Un generador d'ID únic lleuger, 21 caràcters segurs per a URL per defecte (A-Za-z0-9_-), més curt i ràpid que UUID, ideal per a escenaris de frontend i URL.
- UUID v1
- Versió UUID basada en marca de temps i adreça MAC, ordenable per temps però pot filtrar adreça MAC i temps de generació: menys segura que v4.
- UUID v4
- Versió UUID completament basada en nombres aleatoris, més àmpliament utilitzada, probabilitat de col·lisió negligible, l'opció per defecte en desenvolupament.
- UUID v5
- Versió UUID amb espai de noms basada en hash SHA-1: el mateix espai de noms + la mateixa entrada de nom produeix una sortida UUID idèntica, adequada per a escenaris deterministes.
- Probabilitat de col·lisió
- La probabilitat que dos ID generats aleatòriament siguin idèntics. La probabilitat de col·lisió d'UUID v4 és d'aproximadament 1 entre 17 bilions de bilions, negligible en enginyeria pràctica.
- Crockford Base32
- Una codificació Base32 dissenyada per Douglas Crockford que utilitza lletres majúscules i dígits excloent I/L/O/U per evitar caràcters ambigus: utilitzada per ULID.
Comparació UUID / ULID / NanoID
| Característica | UUID v4 | ULID | NanoID |
|---|---|---|---|
| Longitud | 36 caràcters (amb guions) / 32 caràcters (sense guions) | 26 caràcters | 21 caràcters (per defecte) |
| Conjunt de caràcters | Hexadecimal (0-9a-f) | Crockford Base32 (32 caràcters) | Segur per a URL (64 caràcters) |
| Ordenabilitat | Desordenat (aleatori) | Ordenat per temps | Desordenat (aleatori) |
| Segur per a URL | Cal escapar (guions + alfanumèrics) | Majoritàriament segur (majúscules + dígits) | Completament segur per a URL |
| Velocitat de generació | Ràpid | Ràpid | ~60% més ràpid que UUID |
| Probabilitat de col·lisió | 1/10^36 | 1/10^36 | 1/10^34 (a 21 caràcters) |
| Casos d'ús típics | Claus primàries de bases de dades, ID generals | Sistemes distribuïts, traça de registres | URL curtes, ID de frontend, galetes |
Mètodes de generació UUID per llenguatge
| Llenguatge | Codi |
|---|---|
| JavaScript | crypto.randomUUID() // Navegadors moderns / Node.js 19+ |
| Python | import uuid; uuid.uuid4() |
| Java | UUID.randomUUID() |
| Go | github.com/google/uuid; uuid.New() |
| Bash/Linux | uuidgen o cat /proc/sys/kernel/random/uuid |
Authoritative References
- Simulador de Daltonisme
- Convertidor de colors
- Convertidor de .htaccess a Nginx
- Convertidor SQL
- Analitzador de galetes
- Generador d'Expressions Cron
- Validador d'Expressions Cron
- Formatador de CSS
- Minificador de CSS
- CSV a Excel
- Convertidor de Moneda
- Comparador de Diferències
- Generador de Favicon
- Formatejador de XML
- Convertidor Hexadecimal
- Formatador HTML
- Minificador HTML
- Convertidor HTML a Markdown
- Convertidor Markdown a HTML
- Formatejador de JavaScript
- Minificador JS
- Formatador JSX
- Minificador JSX
- Agrupació de paraules clau
- Generador de Lorem Ipsum
- Generador de Taules Markdown
- Generador de Meta Tags
- Generador de contrasenyes
- Verificador de Força de Contrasenya
- Generador de Codis QR i Codis de Barres
- Prover d'Expressions Regulars
- Generador de Slug URL
- Generador de SQL
- Eina de format SQL
- Comptador de Paraules
- Eines de temps
- Formatejador de TS
- Minificador de TS
- Formatejador de TSX
- Minificador de TSX
- Convertidor Unix Timestamp
- Generador UUID
- Formatejador de YAML
- Conversió de majúscules i minúscules