Cookies de estadística y publicidad
Usamos cookies de estadística y de publicidad, y ambas van a Google. Si rechazas, para ti no cambia nada visible.Ir a la página de privacidad
Pulsa el botón y obtén identificadores UUID versión 4, tantos como pidas. Los bits aleatorios los pone el generador criptográfico que el navegador trae incorporado, no un `Math.random()` — y esa diferencia importa más de lo que parece, porque un generador predecible produce identificadores que superan cualquier validación y que alguien puede adivinar.
Dónde se ejecuta
No se sube nada, porque no hay archivo: se calcula en esta misma página.
Sin cola y sin cuenta
Responde tan rápido como dé tu máquina, y nunca pregunta quién eres.
Tantas veces como quieras
No se cuenta nada ni se limita nada: volver a responder no nos cuesta nada.
Se usa `crypto.getRandomValues`, el generador criptográfico del navegador, que toma su entropía del sistema operativo. No es `Math.random()`, cuya salida es reproducible a partir de su estado interno y que nunca debería alimentar un identificador que alguien no deba adivinar.
La diferencia no se ve en el resultado: los dos producen cadenas con el aspecto correcto y ambas pasarían cualquier validación de forma. Solo se nota el día en que alguien predice el siguiente identificador, y para entonces ya está en producción. Si el navegador no ofrece el generador criptográfico, aquí se detiene en lugar de recurrir al débil.
Un UUID son 128 bits, pero en la versión 4 hay cuatro fijados por el número de versión y dos por la variante. Quedan 122 aleatorios, que siguen siendo tantos que la probabilidad de colisión es irrelevante aunque se generen miles de millones.
Ese margen es lo que permite generarlos de forma distribuida sin coordinación: dos servicios que no se hablan nunca pueden crear identificadores a la vez sin acordar nada. Es la propiedad por la que existen los UUID, y la razón por la que un contador autoincremental no sirve en cuanto hay más de una máquina escribiendo.
La versión es el primer carácter del tercer grupo, o sea el decimotercer dígito hexadecimal: aquí siempre un `4`. La variante es el primer carácter del cuarto grupo y tiene que ser `8`, `9`, `a` o `b`, porque esos cuatro dígitos comparten los bits iniciales `10` que el RFC 4122 reclama para sí.
Se puede comprobar a simple vista, y es la forma más rápida de detectar un generador casero. Quien encadene 32 dígitos hexadecimales aleatorios sin fijar esas dos posiciones produce identificadores que parecen UUID, no lo son formalmente y funcionan durante años hasta que algo los valida en serio.
Un UUID versión 1 contiene el instante de creación con precisión de 100 nanosegundos y, tradicionalmente, la dirección MAC de la tarjeta de red. Ambas cosas son reconstruibles por quien tenga el identificador, así que una clave de base de datos visible desde fuera se convierte en una pista sobre el equipo y el momento.
No es una preocupación teórica: fue la vía por la que en 1999 se identificó al autor del virus Melissa, porque Word escribía la MAC en los identificadores de documento. Donde un identificador se ve desde fuera, la versión 4 es la elección correcta.
La versión 7 antepone una marca de tiempo en milisegundos y rellena el resto con azar, de modo que los identificadores quedan ordenados en el tiempo por su propio valor. Eso resuelve el problema por el que muchos equipos han evitado los UUID como clave primaria.
El motivo es el índice. Las claves aleatorias escriben en puntos que cambian constantemente dentro de un árbol B, lo que parte páginas y desperdicia la caché; en tablas grandes eso cuesta rendimiento de escritura medible. Una clave creciente escribe siempre al final. La contrapartida es que el instante de creación vuelve a ser legible.
Aquí se generan en minúsculas y sin adornos, que es lo que la especificación pide al crear. Al leer hay que aceptar mayúsculas, y de hecho .NET y muchas herramientas de Windows escriben tradicionalmente así.
También circulan dos envoltorios: las llaves, que vienen de la notación del registro de Windows, y un `urn:uuid:` delante, que viene del espacio de nombres URN. Ninguno de los dos forma parte del identificador. Quien compare por su cuenta debería normalizar a minúsculas y quitar los envoltorios, o dos identificadores iguales fallarán la comparación por la forma de escribirlos.
Un identificador versión 4 es imposible de adivinar en la práctica, y de ahí a usarlo como token de acceso hay un paso que se da con demasiada frecuencia: un enlace «privado» cuya única protección es que la URL contiene un UUID.
El problema no es la entropía sino dónde acaba la URL: en el historial, en la cabecera de referrer del siguiente clic, en el registro de un proxy, en el mensaje donde alguien la reenvía. Un token debería caducar y poder revocarse, y un UUID no hace ninguna de las dos cosas.
Hay servicios que devuelven UUID por API, y usarlos significa que alguien más ha visto exactamente los identificadores que vas a meter en tu base de datos. No es catastrófico y tampoco es necesario: la generación es una operación local de un par de líneas.
Aquí se hace en tu pestaña, con la criptografía del navegador. No hay ninguna petición implicada, así que funciona igual sin conexión una vez cargada la página — en un tren, tras un proxy corporativo o en una máquina aislada.
Un UUID recién generado no contiene ningún dato personal — son bits aleatorios. Se convierte en un seudónimo en cuanto se asocia a una persona en tu sistema, y a partir de ahí las obligaciones son las mismas que para cualquier otro identificador de usuario.
Lo que esta página garantiza es lo anterior a eso: los identificadores nacen en tu equipo y no pasan por ningún servicio intermedio. Es una diferencia pequeña y real, sobre todo cuando se generan en lote para una migración de datos reales.
Se generan con crypto.getRandomValues, el generador criptográfico del navegador, que toma entropía del sistema operativo. No es Math.random(), cuya salida es reproducible a partir de su estado interno.
La versión 4 tiene 122 bits aleatorios, así que la probabilidad es irrelevante incluso generando miles de millones. Esa es la propiedad que permite crearlos de forma distribuida sin coordinación.
Porque la versión 1 lleva dentro el instante de creación y, tradicionalmente, la dirección MAC del equipo. Si el identificador se ve desde fuera, eso es información que no debería salir.
Mejor no. La entropía basta, pero la URL acaba en el historial, en la cabecera de referrer y en registros de proxy — y un UUID no caduca ni se puede revocar, que es lo que un token sí debe hacer.
No. Se generan en tu pestaña con la criptografía del navegador, sin ninguna petición de por medio. Una vez cargada la página funciona sin conexión.