Saltar al contenido
Quaestio

Generador de UUID

Genera identificadores aleatorios de versión 4, en la forma que necesites.

Identificadores

    El azar viene de la fuente criptográfica del navegador y no se envía nada a ningún sitio.

    Insertar

    Inserta esta herramienta en tu web

    Copia el código y pégalo donde quieras que aparezca la herramienta, por ejemplo en una entrada de blog o en la página de un colegio. Es gratis, el recuadro no tiene anuncios y la herramienta calcula en el navegador de quien la usa.

    Cómo funciona

    Un UUID es un identificador de 128 bits que se escribe como 32 caracteres hexadecimales en cinco grupos separados por guiones.

    La versión 4 es aleatoria salvo seis bits que indican la versión y la variante. Quedan 122 bits aleatorios, es decir, algo más de cinco sextillones de valores posibles, o sea 5,3 × 10³⁶.

    Con tantas posibilidades no hace falta que ninguna autoridad central reparta identificadores. Dos sistemas pueden generar uno cada uno sin consultarse, y la probabilidad de que coincidan es despreciable.

    El azar viene de la fuente criptográfica del navegador, que existe precisamente para valores que deben ser imposibles de adivinar.

    Las formas con mayúsculas o llaves vienen del mundo de Windows. Es el mismo identificador, solo que escrito de otra manera.

    Cómo se crean los identificadores

    La herramienta llama a crypto.randomUUID del navegador, que según la Web Cryptography API del W3C crea un UUID de la versión 4 a partir de bytes aleatorios criptográficamente seguros. En navegadores antiguos sin esa función, la herramienta llena 16 bytes con crypto.getRandomValues y después sobrescribe seis bits: la mitad alta del séptimo byte pasa a ser 0100, que indica la versión 4, y los dos bits más altos del noveno byte pasan a ser 10, que marcan la variante. Se crean hasta 100 identificadores por tanda. Las opciones de mayúsculas, llaves y guiones solo cambian la forma de escribir los valores, no los valores en sí.

    Cómo reconocer la versión 4

    Los bits fijos se ven en el texto. El primer carácter del tercer grupo es siempre 4. El primer carácter del cuarto grupo es 8, 9, a o b, porque solo dos de sus cuatro bits son fijos. En 217685b4-b421-4235-8dfb-e4a25deac194, creado con el propio código de la herramienta, esos caracteres son 4 y 8. Si en esos lugares hay otra cosa, el identificador no es de la versión 4. El RFC 9562 permite escribir las letras en mayúsculas, en minúsculas o mezcladas.

    Casos límite

    Un UUID es un identificador, no un secreto. El RFC 9562 dice que las implementaciones no deberían suponer que los UUID son difíciles de adivinar, y que no deben usarse como credenciales de seguridad, es decir, identificadores cuya mera posesión da acceso. Un enlace para restablecer una contraseña necesita un token pensado para eso.

    Como clave de una base de datos, la versión 4 tiene un inconveniente que señala la propia norma: los valores creados uno tras otro quedan lejos entre sí en el índice, así que cada fila nueva se inserta en una posición aleatoria. La versión 7 empieza con una marca de tiempo y por eso se ordena en el orden en que se crearon los valores. La herramienta solo crea la versión 4.

    Dos valores tienen nombre propio en la norma: el UUID nulo, todo ceros, y el UUID máximo, todo f. Ninguno de los dos puede salir de la herramienta, porque los bits de versión y de variante siempre están puestos.

    Fuentes

    Cómo se comprueban las herramientas