Un UUID (identificador único universal, también llamado GUID) es una etiqueta de 128 bits escrita como 32 dígitos hexadecimales con el patrón 8-4-4-4-12. Cualquiera puede generarlo sin un registro central. El formato lo define la RFC 9562. Créelos con Generador de UUID, léalos con Decodificador de UUID y ULID y elija entre los tipos más habituales en UUID v4 vs UUID v7 vs ULID. La entrada del glosario es UUID.
Cómo leer un UUID
- Ejemplo:
f47ac10b-58cc-4372-a567-0e02b2c3d479. - La versión es el primer dígito hexadecimal del tercer grupo (aquí
4: aleatorio). - La variante está en el primer dígito del cuarto grupo:
8,9,aobindica la disposición estándar (aquía). - Existen dos valores especiales: el UUID nulo
00000000-0000-0000-0000-000000000000y el UUID máximoffffffff-ffff-ffff-ffff-ffffffffffff.
Las versiones
| Versión | Qué contiene | Notas |
|---|---|---|
| 1 | Marca de tiempo (ticks de 100 ns desde 1582-10-15) + ID de nodo | Heredada; el ID de nodo puede filtrar una dirección MAC |
| 3 | Hash MD5 de un espacio de nombres y un nombre | Misma entrada, mismo UUID; evítela en trabajos nuevos |
| 4 | 122 bits aleatorios | La opción por defecto; no revela nada |
| 5 | Hash SHA-1 de un espacio de nombres y un nombre | Misma entrada, mismo UUID; ID estables para nombres |
| 6 | v1 con la marca de tiempo reordenada para que se ordene | Compatibilidad con v1 |
| 7 | Hora Unix de 48 bits en ms + aleatorio | Se ordena por hora de creación; buena para claves de bases de datos |
| 8 | Personalizada: disposición definida por el proveedor | Uso experimental o privado |
¿Qué probabilidad hay de una colisión?
Un UUID versión 4 lleva 122 bits aleatorios, unos 5,3 × 10^36 valores. Por la paradoja del cumpleaños, harían falta aproximadamente 2,7 × 10^18 UUID para un 50 % de probabilidad de un solo duplicado: generando mil millones por segundo, serían unos 86 años.
Consejos prácticos
- Los UUID basados en nombre son reproducibles: el UUID versión 5 de
example.comen el espacio de nombres DNS es siemprecfbff0d1-9375-5685-968c-48ce8b15ae17. - Un UUID es un identificador, no un secreto. No lo use como token de restablecimiento de contraseña o clave de API a menos que proceda de una fuente aleatoria segura, y prefiera tokens más largos para los secretos.
- Guarde los UUID como 16 bytes (una columna
uuidnativa), no como texto de 36 caracteres, cuando pueda. - Use la v7, ordenada por tiempo, para nuevas claves primarias de bases de datos y evite dispersar las inserciones por el índice.