Qué es un UUID v4
Un UUID (identificador único universal) es un valor de 128 bits escrito como 32 dígitos hex en un patrón 8-4-4-4-12, como f47ac10b-58cc-4372-a567-0e02b2c3d479. Los UUID de versión 4 son aleatorios: de los 128 bits, 122 se extraen de una fuente aleatoria criptográficamente segura, mientras que 6 los fija la especificación; el 4 que inicia el tercer grupo marca la versión, y el primer carácter del cuarto grupo siempre es 8, 9, a o b (los bits de variante). Eso deja 2¹²² ≈ 5,3 × 10³⁶ valores posibles, y por eso nadie coordina los UUID y aun así las colisiones nunca ocurren en la práctica.
Generación en lote, correctamente aleatoria
Fija una cantidad de 1 a 50 y pulsa Generar; Copiar todo pone el lote en tu portapapeles, un UUID por línea, listo para pegar en un script SQL de semillas, un archivo de fixtures o una columna de hoja de cálculo. Cada UUID viene del crypto.randomUUID() nativo del navegador: una API respaldada por un CSPRNG, no Math.random(). Esa distinción importa: Math.random() es lo bastante predecible como para que los "UUID" construidos con él puedan colisionar o adivinarse; la fuente Web Crypto no.
Dónde los UUID ganan a los IDs autoincrementales
- Sistemas distribuidos: cualquier cliente o servicio puede acuñar un ID con cero coordinación; sin contador central, sin ida y vuelta a la base de datos.
- Fusionar datos: las filas creadas sin conexión o en bases de datos separadas se pueden combinar sin conflictos de ID.
- Referencias no adivinables: los IDs secuenciales filtran información (
/invoice/1041invita a probar/invoice/1042); los UUID aleatorios no se enumeran. Son inadivinables, eso sí, no un sustituto de comprobaciones de autorización reales. - Generados antes de la inserción: tu código conoce el ID antes de que exista la fila, lo que simplifica enlazar registros relacionados en una sola transacción.
Notas prácticas y trampas
- Almacenamiento: un UUID ocupa 16 bytes como columna nativa
UUID/binaria, pero 36 bytes como texto; prefiere el tipo nativo en Postgres o MySQL 8. - Localidad de índice: los valores v4 aleatorios se dispersan por un índice de árbol B, lo que puede ralentizar tablas enormes con muchas inserciones. El UUID v7 (ordenado por tiempo) lo aborda; v4 sigue siendo el valor por defecto correcto para uso general.
- Mayúsculas: la forma canónica es en minúscula, y las comparaciones deberían no distinguir mayúsculas.
- UUID = GUID: el término de Microsoft para el mismo formato de 128 bits.
La generación corre por completo en tu navegador: ningún servidor ve ni registra los identificadores, así que es seguro usarlos directamente en datos de producción. ¿Necesitas secretos aleatorios en lugar de IDs? Usa el generador de contraseñas. ¿Huellas de contenido existente? Ese es el generador de hash.