Para qué sirven los UUID
Un UUID (Universally Unique Identifier), también llamado GUID en entornos Microsoft, es un valor de 128 bits escrito en forma textual estándar, por ejemplo:
550e8400-e29b-41d4-a716-446655440000
Los sistemas usan UUID cuando necesitan identificadores con probabilidad de colisión extremadamente baja sin un asignador central: claves primarias en servicios distribuidos, IDs de mensaje, identificadores de subida y nombres de recursos en APIs. La unicidad es probabilística (o derivada de nombres), no se demuestra con una consulta a un registro global cada vez que se crea un ID.
Genere un ejemplo con Generar UUID y compruebe el formato y los campos de versión con Validar UUID.
Subherramientas de esta familia
- Generar UUID — crea UUID en las versiones 1, 3, 4 o 5, con entradas opcionales de namespace y name cuando esas versiones las requieren.
- Validar UUID — verifica que una cadena coincida con el diseño UUID e informa consideraciones de validez para las versiones 1 a 5.
Generación y validación se complementan: cree IDs en la versión que espera su esquema y valide cadenas aportadas por usuarios o importadas antes de aceptarlas como claves foráneas o de caché.
Versiones con las que se encontrará
Versión 4 (aleatoria). La opción más habitual para IDs de aplicaciones nuevas. La mayoría de los bits son aleatorios de un CSPRNG; los bits de versión y variante quedan fijados según RFC 4122. Las colisiones son despreciables a volúmenes prácticos si el generador es sólido.
Versión 1 (basada en tiempo). Incorpora una marca temporal y un identificador de nodo (históricamente una dirección MAC). Útil si desea un orden temporal aproximado, pero puede filtrar la hora de creación y la identidad de la máquina; en contextos sensibles a la privacidad suele preferirse v4 o esquemas más nuevos.
Versión 3 (basada en nombre con MD5) y versión 5 (basada en nombre con SHA-1). Derivan un UUID de un namespace UUID más una cadena name. El mismo namespace+name produce siempre el mismo UUID: práctico para IDs estables a partir de URLs o nombres de usuario sin tabla de búsqueda. Para diseños nuevos se prefiere v5 frente a v3 porque la derivación usa SHA-1 en lugar de MD5.
Otras versiones y propuestas sucesoras (por ejemplo UUIDv7 ordenable por tiempo en RFCs más recientes) aparecen en stacks modernos; cuando su plataforma documenta una versión concreta, sígala en lugar de mezclar políticas.
Formato de texto y bits de variante
El texto canónico usa cinco grupos hexadecimales 8-4-4-4-12. Los analizadores deben aceptar hex en mayúsculas o minúsculas. El nibble de versión está en el tercer grupo; los bits de variante, en el cuarto. Validar solo que «parece hex con guiones» es más débil que comprobar también la coherencia versión/variante del tipo declarado.
Algunas APIs aceptan forma URN (urn:uuid:…) o GUID entre llaves {…}. Normalice antes de comparar. El almacenamiento binario son 16 bytes; la forma textual sirve a humanos y a JSON.
Elegir IDs con criterio
Cuándo ayudan los UUID. Claves primarias amigables con fusiones, minting de IDs sin conexión, ocultar contadores de filas secuenciales a los clientes.
Cuándo perjudican. Claves primarias aleatorias grandes pueden fragmentar índices B-tree frente a enteros secuenciales: mida en su base de datos. El registro y el soporte se complican si cada ID es opaco; combine con números de caso legibles cuando el personal lo necesite.
Estabilidad. Para v3/v5 basados en nombre, documente el namespace UUID que su organización estandariza (DNS, URL, OID o una raíz propia). Cambiar el namespace reminta en silencio un ID distinto para el mismo name.
Notas de seguridad
Los valores UUIDv4 son identificadores, no secretos de autenticación. Aun así, adivinar un ID v4 no listado es difícil: no lo trate como autorización por sí solo; aplique siempre control de acceso. Evite v1 si los bits de nodo derivados de MAC revelarían identidad de hardware en documentos públicos. No incruste contraseñas ni PANs en cadenas name para v3/v5.
Errores frecuentes
- Generar v4 pero guardar solo la primera mitad «para ahorrar espacio», destruyendo las garantías de unicidad.
- Comparaciones de cadenas sensibles a mayúsculas entre sistemas que normalizan de forma distinta.
- Usar el UUID nil (
00000000-0000-0000-0000-000000000000) como clave real de entidad. - Asumir que validar el formato implica que el ID existe en su base de datos.
- Mezclar varios generadores con políticas de versión distintas para la misma columna.
Limitaciones y entorno
Estas herramientas ayudan a crear e inspeccionar UUID al estilo RFC en el navegador para desarrollo y aprendizaje. No asignan IDs desde secuencias de su base de producción ni garantizan unicidad global ante RNGs defectuosos.
Resumen
Los UUID ofrecen identificadores de 128 bits en forma hex estándar, con versiones para generación aleatoria, basada en tiempo y basada en nombre. Este hub combina un generador multiversión con un validador para crear IDs acordes a su esquema y rechazar cadenas mal formadas pronto. Prefiera v4 para uso general, v5 para IDs estables derivados de nombres, y aplique siempre la autorización por separado de la opacidad del identificador.