Necesito un gran generador de números aleatorios grande (por ejemplo, de 128 bits) en PHP. Estaba pensando en almacenar este número en una cadena como hexadecimal.Gran generación de números aleatorios
Tenga en cuenta que esto está destinado para un sistema de inicio de sesión que se menciona la necesidad de un número "aleatorio", así que supongo que realmente necesito que sea "lo suficientemente aleatorio" (porque sé pseudo-aleatorio es nunca verdaderamente al azar).
El algoritmo que estaba pensando generaba el dígito hexadecimal número uno a la vez, luego lo concatenaba todo. De esta manera:
$random = '';
for ($i = 0; $i < 32; ++$i) {
$digit = rand(0, 15);
$random .= ($digit < 10 ? $digit : ($digit - 10 + 'a'));
}
return $random;
¿Puedo confiar en esta función para devolver buenos números pseudo-aleatorios o estoy jugando con algo que realmente no debería?
Por qué no basta con sustituir $ sal por rand()? ¿No sería igualmente aleatorio? Diablos, probablemente aún más al azar. – luiscubal
eso es cierto, pero usar rand() anulará tu capacidad para comparar el hash esperado, si quieres hacerlo. P.EJ.en situaciones de contraseñas, a menudo se picará la contraseña de los usuarios con una sal-- entonces, dado que presumiblemente eres el único que conoce la sal, puedes comparar el hash que has grabado en la base de datos para ese usuario con el "esperado hash ", y puede verificar que sea correcto. – julio