La Agencia Española de Protección de Datos (AEPD), como otras autoridades europeas bajo el RGPD, recomienda la seudonimización de registros que contienen datos personales: usar un identificador que no revele información sobre la persona ni sobre el volumen o el orden de los registros. Por eso muchos sistemas en español sustituyen claves autoincrementales por UUID —un ID secuencial expone cuántos usuarios se han registrado; un UUID no revela nada de eso.
Versiones de UUID
- v1 — basada en la hora actual y la dirección MAC de la tarjeta de red. Garantiza unicidad, pero revela parcialmente cuándo y en qué dispositivo se creó el identificador.
- v4 — completamente aleatoria (salvo unos pocos bits que indican la versión). La opción más común hoy precisamente porque no filtra información colateral.
- v5 — determinista, se calcula como un hash de un espacio de nombres y una cadena; la misma entrada siempre da el mismo UUID.
Por qué la probabilidad de colisión es prácticamente nula
En un UUID v4, 122 bits son aleatorios. Incluso generando miles de millones de UUID por segundo durante siglos, la probabilidad de al menos una coincidencia sigue siendo astronómicamente pequeña, algo matemáticamente fundamentado por el problema del cumpleaños para un espacio de este tamaño.
Para qué se necesita esto
- Generar claves primarias de bases de datos sin un contador central ni coordinación entre servidores.
- Seudonimizar registros con datos personales sin revelar su volumen ni su orden de creación.
- Evitar IDs secuenciales predecibles que son fáciles de enumerar (a diferencia de
1, 2, 3...).
UUID v7: un compromiso entre aleatoriedad y orden
Un UUID v4 completamente aleatorio perjudica el rendimiento de los índices de bases de datos — los nuevos registros se insertan en posiciones caóticas del árbol del índice en lugar de al final. El más reciente UUID v7 resuelve esto incorporando una marca de tiempo en los primeros bits del identificador: los valores siguen siendo prácticamente únicos, como en v4, pero se ordenan de forma natural según el momento de creación, como un contador secuencial.