Saltar al contenido principal

Generador de UUID Versión 4

UUIDv4 • Criptográficamente Aleatorio
00000000-0000-0000-0000-000000000000
Encapsular:

Generar UUIDs Masivos

Máx 5.000
Formato y Estructura

Listo

No batch active
Estándar de la IndustriaRFC 9562 Sección 5.4 / RFC 4122

Especificación Técnica UUID Versión 4 (RFC 4122 y RFC 9562)

UUIDv4 es la versión más utilizada en el mundo. De sus 128 bits totales, exactamente 122 bits son aleatoriedad criptográficamente segura, reservando 6 bits para la versión (0100) y la variante (10xx).

Distribución de Bits y Estructura Binaria

Distribución detallada de 128 bits según las normas RFC.

CampoRango de BitsPropósito y Descripción
random_hi48 bits (0-47)Entropía pseudoaleatoria criptográficamente segura.
ver4 bits (48-51)Valor binario constante 0100 (identifica la Versión 4).
random_mid12 bits (52-63)Entropía pseudoaleatoria criptográficamente segura.
var2 bits (64-65)Valor binario constante 10 (variante estándar RFC).
random_lo62 bits (66-127)Entropía pseudoaleatoria criptográficamente segura.

Ventajas y Fortalezas

  • Privacidad máxima: no filtra marcas de tiempo, direcciones MAC ni información de origen.
  • Soporte universal en todas las bibliotecas de lenguajes de programación y motores de bases de datos.
  • Impredecible por diseño, inmune a ataques de enumeración o adivinanza IDOR.
!

Consideraciones y Desventajas

  • Rendimiento deficiente en índices B-Tree de bases de datos por escrituras aleatorias.
  • No se puede ordenar cronológicamente sin una columna auxiliar created_at.

Recomendado para

  • Tokens de sesión, claves de API, enlaces de restablecimiento de contraseña y códigos OAuth.
  • Identificadores opacos y privados orientados al usuario.
  • Cachés distribuidas (Redis, Memcached) y claves no indexadas.

Cuándo evitar

  • Claves primarias con alto volumen de inserción en índices B-Tree (use UUIDv7).
  • Registros que requieran ordenación lexicográfica natural.

Ejemplos de Implementación en Código

Native Web CryptoJavaScript / TypeScript
// Modern browsers and Node.js 14.17+
const id = crypto.randomUUID();
console.log(id); // e.g. "c9a646d3-9c61-4cc9-bc0c-930438cf38cf"
Python Standard LibraryPython
import uuid

id = uuid.uuid4()
print(id) # e.g. "f47ac10b-58cc-4372-a567-0e02b2c3d479"
Go (google/uuid)Go
package main

import (
  "fmt"
  "github.com/google/uuid"
)

func main() {
  id := uuid.New()
  fmt.Println(id.String())
}

Preguntas Frecuentes

¿Cuántos UUIDv4 posibles existen?
Ofrece 122 bits de entropía (aproximadamente 5.3 × 10^36 combinaciones únicas). La posibilidad de colisión es de menos de una entre mil millones tras generar mil millones de IDs por segundo durante 85 años.
¿Utiliza Math.random()?
No. Emplea la API Web Crypto (crypto.getRandomValues), que obtiene entropía directamente del kernel del sistema operativo (CSPRNG).