open_ssl_random_pseudo_bytes es un generador de números pseudo aleatorios seguro criptográficamente (CSPRNG) .
En términos sencillos, esto significa que puede generar una secuencia impredecible y distribuida uniformemente, que es adecuada para la generación de claves. La propiedad impredecible es importante, porque incluso si se conoce el estado completo del generador de números aleatorios, un atacante no puede recrear las secuencias generadas previamente, y no es factible que un observador externo adivine el estado para predecir secuencias futuras.
Esto contrasta con un generador de números aleatorios que toma su semilla del número de segundos pasados la medianoche y luego genera secuencias predecibles basadas en esta semilla. En este caso, un atacante puede simplemente configurar su propio sistema para generar números utilizando la misma semilla y puede adivinar de manera efectiva los valores de token para usarlos para sus propios propósitos nefarios.
64 bytes le darán 512 bits de entropía. Como MD5 genera hashes de 128 bits, no hay ninguna ventaja de que la entropía generada sea mayor que 128. Si el código se ejecuta mil millones de veces, existe una posibilidad estadísticamente probable de que siempre sea único porque tiene un espacio de teclas de salida de 2 128 (3.4 * 10 38 ). La tasa de colisión de MD5 es aproximadamente 2 64 que es aproximadamente 18 billones de billones.