Generador de UUID / ULID
Genera UUID v4 (aleatorio), UUID v7 (ordenado por tiempo) o ULID, uno o varios a la vez, usando crypto.getRandomValues. Todo local, sin Math.random.
Identificadores generados
Cómo se generan
UUID v4 16 bytes de crypto.getRandomValues. Se fija
la versión 4 en el nibble alto del byte 6 y la variante RFC 4122 (10xx)
en los dos bits altos del byte 8. Quedan 122 bits aleatorios, formato 8-4-4-4-12.
UUID v7 los primeros 48 bits son el timestamp Unix en milisegundos
(big-endian), luego versión 7, variante y 74 bits aleatorios. Es
ordenable por tiempo: dos v7 seguidos comparan crecientes.
ULID 26 caracteres en base32 de Crockford: 48 bits de tiempo (10 chars) + 80 bits aleatorios (16 chars). Ordenable lexicográficamente por su prefijo temporal.
Toda la aleatoriedad viene del CSPRNG del navegador. Nunca se usa Math.random
y nada sale de tu equipo.
Los identificadores se generan íntegramente en tu navegador. No se descarga ni se consulta nada en línea.
Cálculo local en tu navegador · sin registro · sin enviar datos.
¿Cómo funciona?
El generador crea identificadores únicos de tres tipos, de uno en uno o en lotes de hasta 100: UUID v4 (16 bytes aleatorios con la versión y la variante fijadas según RFC 4122, lo que deja 122 bits de aleatoriedad), UUID v7 (los primeros 48 bits son el timestamp Unix en milisegundos y los 74 bits restantes son aleatorios, según RFC 9562, por lo que es ordenable por tiempo) y ULID (26 caracteres en base32 de Crockford: 48 bits de tiempo más 80 bits aleatorios, ordenable lexicográficamente).
Toda la aleatoriedad proviene de crypto.getRandomValues, el CSPRNG del navegador; nunca se usa Math.random, que no es apto para identificadores con valor de seguridad. Puedes ajustar el formato de salida (mayúsculas, con llaves {…}, o sin guiones en el caso de los UUID) y copiar cada identificador o el lote completo. En los lotes de v7 y ULID cada elemento suma 1 ms al instante base, así que quedan estrictamente crecientes aunque se generen en el mismo milisegundo.
Caso de uso: claves primarias que no fragmenten el índice
- Genera un UUID v7: por ejemplo
0190c2f3-…-7…. Sus primeros 48 bits codifican el instante de creación. - Al insertarlo como clave primaria, los registros nuevos caen siempre al final del índice B-tree, evitando la fragmentación que provocan los v4 aleatorios.
- Si prefieres un identificador más corto y amigable para URL, usa ULID: 26 caracteres sin guiones, ordenable igual que el v7.