Tech

Generador de UUID v5

Elegí un namespace (DNS, URL, OID, X.500 o uno propio), escribí un nombre y obtené su UUID v5 determinístico según RFC 4122: el mismo input produce siempre el mismo UUID. SHA-1 calculado con WebCrypto, 100% en tu navegador.

Instantáneo🔒En tu navegadorSin registro
En vivo
UUID v5

Qué es un UUID v5 y por qué es determinístico

Un UUID v5 es un identificador de 128 bits definido en la RFC 4122 que, a diferencia del v4 aleatorio, se calcula a partir de dos datos: un namespace (que es a su vez un UUID) y un nombre (cualquier texto). El algoritmo aplica SHA-1 sobre la concatenación de ambos, así que el mismo namespace con el mismo nombre produce siempre el mismo UUID, en cualquier lenguaje, en cualquier máquina, hoy y dentro de diez años. Esa reproducibilidad es oro para varios problemas reales: deduplicación (dos sistemas que ven el mismo registro generan el mismo ID sin coordinarse), claves de cache estables, migraciones de datos donde necesitás regenerar IDs sin romper referencias, e IDs reproducibles en tests y pipelines. El namespace evita colisiones entre dominios distintos: "juan" como usuario y "juan" como producto generan UUIDs diferentes si usás namespaces diferentes.

Cómo se calcula (el algoritmo paso a paso)

El algoritmo de la RFC 4122 es simple: se toman los 16 bytes del UUID del namespace, se les concatenan los bytes UTF-8 del nombre, y se calcula el SHA-1 de todo eso. De los 20 bytes del hash se usan los primeros 16; luego se fuerza el nibble de versión a 5 en el byte 6 y los bits de variante (10) en el byte 8, y se formatea como 8-4-4-4-12. Por ejemplo, con el namespace DNS y el nombre www.example.com el resultado es siempre 2ed6657d-e927-568b-95e1-2665a8aea6a2 — es el ejemplo oficial de la RFC 9562 (la revisión de la RFC 4122) y podés verificarlo acá arriba o en Python con uuid.uuid5(uuid.NAMESPACE_DNS, 'www.example.com'). Esta herramienta calcula el SHA-1 con crypto.subtle, la API criptográfica nativa del navegador, así que nada sale de tu dispositivo.

v5 no es para todo: cuándo te conviene otra versión

Si lo que necesitás es un ID único nuevo sin ningún input (el caso más común en bases de datos y APIs), lo tuyo es un v4 aleatorio o un v7 ordenable por tiempo: para eso tenés nuestro generador de UUID, que genera v4 y v7 individuales o en lote. Usá v5 solamente cuando la propiedad que buscás es que el mismo dato produzca siempre el mismo ID.

Comparativa de versiones UUID

VersiónFuente de datosDeterminísticoHashCuándo usarla
v1Timestamp + dirección MACNoSistemas legacy; filtra la MAC del equipo (problema de privacidad)
v3Namespace + nombreMD5Solo por compatibilidad con sistemas viejos; preferí v5
v4Aleatorio (CSPRNG)NoEl caso general: IDs únicos sin coordinación entre sistemas
v5Namespace + nombreSHA-1IDs reproducibles: deduplicación, cache, migraciones
v7Timestamp + aleatorioNoClaves de base de datos ordenables por tiempo (índices felices)

Los 4 namespaces estándar de la RFC 4122

NamespaceUUIDPara qué tipo de nombre
DNS6ba7b810-9dad-11d1-80b4-00c04fd430c8Nombres de dominio (ej. www.example.com)
URL6ba7b811-9dad-11d1-80b4-00c04fd430c8URLs completas (ej. https://example.com/a)
OID6ba7b812-9dad-11d1-80b4-00c04fd430c8Identificadores de objeto ISO (ej. 1.3.6.1.4.1)
X.5006ba7b814-9dad-11d1-80b4-00c04fd430c8Nombres distinguidos de directorio (DN de LDAP/X.500)

Si tus nombres no encajan en ninguna categoría estándar, generá un UUID v4 una sola vez, fijalo como constante en tu proyecto y usalo como namespace propio con la opción "Personalizado".

Preguntas frecuentes

¿Qué es un UUID v5?

Un UUID determinístico de la RFC 4122: SHA-1 sobre un namespace (otro UUID) más un nombre. Mismo namespace y nombre → siempre el mismo UUID.

¿UUID v5 siempre devuelve el mismo resultado?

Sí. Con el namespace DNS y "www.example.com" siempre da 2ed6657d-e927-568b-95e1-2665a8aea6a2, en cualquier lenguaje y máquina.

¿Cuál es la diferencia entre UUID v3 y v5?

v3 hashea con MD5 y v5 con SHA-1; la RFC recomienda v5. No ofrecemos v3 porque WebCrypto no expone MD5 y SHA-1 es preferible.

¿Es un problema que v5 use SHA-1, si SHA-1 está "roto"?

No para este uso: acá el hash solo distribuye nombres en el espacio de IDs, no es un mecanismo de seguridad.

¿Qué namespace tengo que elegir?

DNS para dominios, URL para URLs, OID para identificadores ISO, X.500 para nombres de directorio. Si nada encaja, usá uno propio.

¿Puedo usar mi propio namespace personalizado?

Sí: generá un UUID v4 una vez, guardalo como constante y pegalo en la opción "Personalizado". Cualquier UUID válido sirve.

¿Se puede recuperar el nombre original desde un UUID v5?

No directamente (SHA-1 es de una sola vía), pero con un espacio de nombres chico se puede adivinar por fuerza bruta. No lo uses para anonimizar datos sensibles.

¿Cuándo conviene v5 y cuándo v4?

v4 para IDs únicos nuevos sin input; v5 cuando el mismo dato tiene que producir siempre el mismo ID (deduplicación, cache, migraciones).

¿Se envían mis datos a un servidor?

No. El SHA-1 se calcula con crypto.subtle en tu navegador; ni el namespace ni los nombres salen de tu dispositivo.

¿Te sirvió este generador?