Qué hace esta herramienta
Genera UUIDs (universally unique identifiers) en tu navegador, en cuatro variantes:
- v4 — 122 bits aleatorios desde
crypto.getRandomValues. La elección estándar cuando solo necesitas un ID único sin orden temporal. - v7 — timestamp Unix de milisegundos de 48 bits + 74 bits aleatorios. Naturalmente ordenado por instante de creación, ideal para claves primarias en bases de datos.
- NIL —
00000000-0000-0000-0000-000000000000. Centinela RFC 9562 para "ningún UUID". - MAX —
ffffffff-ffff-ffff-ffff-ffffffffffff. Centinela RFC 9562 para "valor máximo".
Formato configurable: con o sin guiones, mayúsculas o minúsculas, con o sin llaves {}. Genera hasta 1.000 a la vez.
Cuándo usar v4 vs v7
- v4 cuando el ID solo identifica y no debería revelar nada sobre cuándo se creó. Es la elección segura por defecto y casi todo el mundo lo entiende.
- v7 cuando los registros se insertan en una base de datos en orden temporal y quieres que el índice principal sea contiguo en lugar de aleatorio. v4 fragmenta los índices B-tree porque las inserciones son aleatorias; v7 las ordena.
- NIL como valor "vacío" en columnas
UUID NOT NULLpara distinguir "sin asignar" de "asignado". - MAX raramente — útil como centinela en rangos.
Cómo funciona
v4 toma 16 bytes de crypto.getRandomValues, fija los bits de versión (4) y variante (10) y formatea como hex con guiones.
v7 toma 48 bits del timestamp Date.now() actual, 74 bits aleatorios, fija los bits de versión (7) y variante (10) y formatea igual.
Todo es local. Ningún UUID se envía a TaskKit ni a un tercero — la entropía viene de la API criptográfica del navegador.
Notas
¿v4 puede colisionar? Probabilísticamente sí, pero la probabilidad es absurdamente baja: necesitarías generar miles de millones por segundo durante años para una colisión esperada. Para todo uso práctico, v4 es único.
¿v7 expone el timestamp? Sí — los primeros 48 bits son ms desde Epoch. Si el momento de creación es información sensible, prefiere v4.
¿Por qué los guiones? Por la representación canónica RFC 4122/9562 (8-4-4-4-12 caracteres). Sin guiones es 32 caracteres hex y muchos sistemas también lo aceptan.
¿ULID/KSUID? No los generamos aquí. v7 cubre el mismo caso de uso (ordenado por tiempo) con compatibilidad total con UUID existente.
Herramientas relacionadas
- UUID v4 y UUID v7 — páginas dedicadas con notas detalladas
- Conversor de timestamp — para extraer el timestamp de un v7
- Codificador JWT — para usar un UUID como claim
jti