Genera identificadores UUID v4 únicos.
Todos los cálculos se realizan localmente en tu navegador. No se envía ningún dato al servidor.
Los resultados tienen carácter informativo. Contrástalos con otras fuentes.
UUID: qué significan los dígitos
Un UUID es un identificador de 128 bits escrito como 32 dígitos hexadecimales con el patrón 8-4-4-4-12. La versión 4 —la que genera esta herramienta— rellena casi todos esos bits con datos aleatorios, así que dos valores generados por separado prácticamente nunca coinciden.
Cómo funciona
- Genera 128 bits y luego sobrescribe seis: cuatro para registrar la versión (4) y dos para la variante.
- Quedan 122 bits de aleatoriedad real, y de ahí viene la resistencia a colisiones.
- Da formato al resultado como 8-4-4-4-12 caracteres hexadecimales separados por guiones.
- Usa crypto.getRandomValues del navegador, una fuente criptográficamente segura, no Math.random.
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
↑ ↑
versión variante (8, 9, a o b)
bits aleatorios = 128 − 6 = 122Ejemplo resuelto
Lectura de un UUID v4 real, posición por posición.
- f47ac10b-58cc-4372-a567-0e02b2c3d479
- posición 15 (inicio del tercer grupo): 4 → versión 4, generada al azar
- posición 20 (inicio del cuarto grupo): a → la variante RFC 4122
- los otros 122 bits son aleatorios
- probabilidad de colisión: tras mil millones de UUID, en torno a 1 entre 10^22
Habría que generar unos 2,7 × 10^18 UUID para llegar a un 50% de probabilidad de una sola colisión: una cifra tan grande que un duplicado es un error en tu código, no mala suerte.
Cómo leer el resultado
- Los UUID v4 no se ordenan. Como clave primaria dispersan las escrituras por el índice B-tree, lo fragmentan y ralentizan las inserciones en tablas grandes. La versión 7, que coloca una marca de tiempo en los bits altos, se diseñó justo para esto y ordena cronológicamente.
- Un UUID es un identificador, no un secreto. En la práctica es inadivinable, pero tratarlo como un token de acceso significa que quien lo vea en una URL, un registro o una cabecera referer tiene la llave.
- Guárdalos como 16 bytes binarios o en una columna uuid nativa, no como cadena de 36 caracteres. La forma textual más que duplica el almacenamiento y ralentiza cada comparación.
- Las mayúsculas no cuentan y los guiones son formato. Compara de forma canónica o tendrás falsas discrepancias entre sistemas.
Preguntas frecuentes
- ¿Cuál es la probabilidad real de colisión?
- Con 122 bits aleatorios, generar mil millones de UUID por segundo durante un siglo deja la probabilidad de cualquier colisión en un nivel despreciable. En la práctica, cada UUID duplicado que se reporta resulta ser un generador con semilla fija o un valor reutilizado.
- ¿v4 o v7 para claves de base de datos?
- v7 para todo lo que insertes en volumen, porque ordena por hora de creación y mantiene secuenciales las escrituras del índice. v4 sigue siendo la opción correcta cuando no quieres que el identificador delate cuándo se creó.