🌐 ES

🎲 Generador de Números Aleatorios

Herramienta para generar UUID, cadenas aleatorias, claves de seguridad, etc. Útil para claves API, contraseñas temporales, generación de tokens, y genera números aleatorios de forma criptográficamente segura.

Resultado
※ El UUID es un identificador único universal con una probabilidad de duplicación extremadamente baja.
※ Los números aleatorios generados se crean de forma criptográficamente segura.
※ Puede utilizarse para claves API, contraseñas temporales, tokens, etc.
GUÍA

Más información

01

1. Importancia de los Números Aleatorios y el CSPRNG

Los números aleatorios son valores impredecibles esenciales para el cifrado, la seguridad, los juegos y la simulación. Los generadores aleatorios estándar producen números pseudoaleatorios generados mediante algoritmos, lo que los hace predecibles si se conoce el valor semilla. Para aplicaciones críticas en materia de seguridad, se debe usar CSPRNG (Cryptographically Secure Pseudo-Random Number Generator). Las funciones random_bytes() y random_int() de PHP son CSPRNG que utilizan /dev/urandom o CryptGenRandom. JavaScript proporciona crypto.getRandomValues(), que aprovecha las fuentes de entropía del navegador. El Math.random() estándar no es apto para la seguridad y nunca debe usarse para tokens, identificadores de sesión o claves de cifrado.

02

2. UUID e Identificadores Únicos

El UUID (Universally Unique Identifier) es un identificador único de 128 bits con una probabilidad de colisión extremadamente baja. El UUID v4 es completamente aleatorio y el más utilizado. El formato es xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, donde 4 indica la versión e y indica la variante. El UUID v1 se basa en la marca de tiempo y la dirección MAC, lo que permite ordenar cronológicamente, pero expone direcciones MAC, lo cual supone un problema de seguridad. El UUID v7 es la versión más reciente, basada en marca de tiempo pero sin exponer información personal. Usar UUID como claves primarias de bases de datos, nombres de archivo, identificadores de sesión y en sistemas distribuidos garantiza la unicidad sin coordinación central.

03

3. Generación de Claves de Seguridad y Tokens

Las claves API, los tokens de autenticación y los identificadores de sesión deben tener suficiente entropía. Se recomienda un mínimo de 128 bits (16 bytes), siendo 256 bits (32 bytes) más seguro. La codificación Base64 permite convertir a cadenas seguras para URL. El JWT (JSON Web Token) consta de Header, Payload y Signature, y contiene la información dentro del propio token. Los tokens CSRF previenen la falsificación de solicitudes entre sitios incluyendo un token único en cada formulario. El parámetro state de OAuth 2.0 también es un valor aleatorio para la prevención de CSRF. Los tokens deben ser de un solo uso (nonce) o tener un tiempo de expiración para evitar ataques de repetición.

04

4. Implementación de Generadores de Números Aleatorios Criptográficos

Los sistemas operativos recopilan entropía a partir del ruido de hardware, el tiempo de teclado/ratón, los paquetes de red, etc. Linux ofrece /dev/random (bloqueante) y /dev/urandom (no bloqueante). /dev/random espera cuando la entropía es insuficiente, lo cual puede ser un problema en entornos de servidor. Los kernels modernos recomiendan la llamada al sistema getrandom(). Windows utiliza CryptGenRandom (heredado) o BCryptGenRandom (moderno). Los generadores de números aleatorios por hardware (HRNG) utilizan las instrucciones Intel RDRAND o chips TPM para generar aleatoriedad verdadera. Los entornos en la nube enfrentan escasez de entropía debido a la virtualización, utilizando demonios como haveged.

05

5. Números Aleatorios en Blockchain y Contratos Inteligentes

Las blockchains son entornos deterministas que dificultan la generación aleatoria. Todos los nodos deben verificar el mismo resultado, por lo que no se pueden usar números aleatorios convencionales. Usar hashes de bloques como fuente de aleatoriedad permite la manipulación por parte de los mineros. Chainlink VRF (Verifiable Random Function) proporciona aleatoriedad verificable para loterías on-chain y la creación de NFT. Los esquemas Commit-Reveal hacen que los participantes envíen primero un hash (commit) y luego revelen el original más tarde (reveal) para evitar la manipulación. Random Beacon es un servicio público de aleatoriedad proporcionado por el NIST o el proyecto drand. Los juegos con contratos inteligentes requieren aleatoriedad confiable.

06

6. Aplicaciones Prácticas de los Generadores Aleatorios

Los generadores aleatorios en línea se utilizan para diversos propósitos. La emisión de claves API requiere una longitud suficiente (32 o más caracteres) y complejidad. Las contraseñas temporales combinan números, letras y caracteres especiales, y se configuran para un solo uso. Los códigos de cupón prefieren combinaciones amigables de mayúsculas y números (por ejemplo, AB12-CD34-EF56). Los códigos de invitación usan de 6 a 8 caracteres cortos y fáciles de recordar. Las combinaciones de marca de tiempo + valor aleatorio evitan colisiones de nombres de archivo. Usar UUID como claves de sharding de bases de datos permite superar las limitaciones de los ID autoincrementales. La asignación de grupos en pruebas A/B también garantiza equidad mediante la aleatoriedad. Siempre es importante elegir generadores aleatorios adecuados según los requisitos de seguridad.