ГСЧ laboratorio de aleatoriedad

Utilidades

UUID y tokens aleatorios

UUID v4, hex, base64 y PIN: de uno en uno o por cientos.

instantáneo calculado localmente
Resultado Aleatoriedad: CSPRNG local
Pulsa «Generar»: los valores aparecerán aquí.
Listo para funcionar
Resumen UUID v4
UUID formato
36 caracteres
122 bits de entropía

122 bits: 128 bits aleatorios menos 6 bits para la versión y la variante.

Los valores generados son visibles en pantalla y pueden acabar en el historial del navegador o en una captura. Para secretos reales, usa un gestor de secretos del servidor, no una pestaña con un generador.

Qué es UUID v4

UUID (universally unique identifier) es un identificador de 128 bits que se escribe con treinta y seis caracteres: ocho grupos separados por guiones, por ejemplo 3f2a9c1e-7b4d-4f6a-9e21-8c5d0b7a4e13. La cuarta versión del estándar significa que casi todos sus bits son aleatorios.

De los 128 bits, seis están reservados: cuatro van al número de versión (en el tercer grupo siempre hay un 4), dos para la variante RFC 4122 (el cuarto grupo empieza por 8, 9, a o b). Quedan 122 bits aleatorios: aproximadamente 5,3 × 10³⁶ combinaciones.

La propiedad principal del UUID es que se puede crear en cualquier lugar sin coordinación con un servidor. Dos aplicaciones independientes casi nunca generarán el mismo identificador, por eso es cómodo generarlo en el cliente antes de escribirlo en la base de datos.

Dónde se usan UUID y tokens

  • claves primarias de tablas cuando el autoincremento estorba o revela el tamaño de la base;
  • identificadores de petición para registros y trazas entre servicios;
  • claves de idempotencia para peticiones repetidas a una API;
  • nombres de archivos temporales, carpetas y sesiones;
  • tokens hex y base64 para enlaces de restablecimiento de contraseña e invitaciones;
  • Códigos PIN para verificación local, por ejemplo en un entorno de demostración.

En qué se diferencia un UUID de una cadena aleatoria

Una cadena aleatoria es solo un conjunto de signos sin compromiso. El UUID es un estándar: longitud fija, notación canónica, número de versión y variante dentro, y soporte listo en bibliotecas de cualquier lenguaje. Si el valor debe ser leído por parsers estándar y guardado en una columna uuid, use UUID.

Si lo que necesitas es un token (para un enlace, una clave de API o un nombre de archivo), el formato es más libre. Hex es cómodo porque solo consta de dígitos y letras latinas a–f y no requiere escapado. Base64 es más denso: seis bits por carácter en lugar de cuatro, así que una cadena de la misma resistencia es una cuarta parte más corta.

Cuánta entropía tiene un token

La entropía del token se calcula como longitud × log₂(alfabeto). Para un código PIN el alfabeto son diez dígitos, así que incluso 12 caracteres aportan solo unos 40 bits: ese código protege frente a intentos aleatorios, pero no frente a un ataque dirigido.

TipoCálculoEntropía
UUID v4122 bits aleatorios122 bits
HEX, 16 bytes16 × 8128 bits
HEX, 32 bytes32 × 8256 bits
Base64, 32 caracteres32 × 6192 bits
PIN, 6 dígitos6 × log₂(10)≈ 20 bits
Cadena propia, 24 caracteres de 3224 × 5120 bits

Cómo tratar los tokens

  • para sesiones y API, al menos 128 bits de entropía;
  • para enlaces de un solo uso, una vida corta importa más que la longitud;
  • guarda en el servidor el hash del token, no el token en sí;
  • no escribas tokens en registros ni en analítica;
  • PIN: solo para verificación local, no para acceder a datos.
Preguntas frecuentes
¿Puede repetirse un UUID v4?
En teoría sí, como cualquier valor aleatorio. La probabilidad de coincidencia para 122 bits es tan pequeña que en la práctica se desprecia: para que la probabilidad de colisión llegue al uno por ciento habría que emitir del orden de 10¹⁸ identificadores.
¿Por qué el tercer grupo siempre lleva un «4»?
Es el número de versión: el cuatro significa «datos aleatorios». El cuarto grupo empieza por 8, 9, a o b, lo que indica la variante RFC 4122. Juntos ocupan seis bits y no participan en la aleatoriedad.
¿Sirve un UUID como contraseña?
No, aunque haya entropía suficiente. El UUID está pensado para la identificación pública: se muestra en enlaces, registros e interfaces y no se considera un secreto. Para contraseñas, usa un generador de contraseñas.
¿En qué es más cómodo un token hex que base64?
Hex solo contiene 0–9 y a–f: esas cadenas se pueden insertar sin problemas en URL, nombres de archivo y SQL sin escapar. Base64 es más corto, pero incluye los signos «+» y «/», que a veces hay que sustituir.
¿Se puede definir un alfabeto propio?
Sí, en el modo «Cadena propia». Quita los caracteres parecidos para que el valor sea más fácil de dictar y vigila el tamaño del alfabeto: cuanto menor sea, más baja será la entropía con la misma longitud.
↑↓ navegación Enter abrir Esc cerrar