PHP随机数是可预测的吗?如果是这样,预测1到32范围内的随机数有多难?有没有办法让它变得不可预测?
<?php
function rand_best($min, $max) {
$generated = array();
for ($i = 0; $i < 100; $i++) {
$generated[] = mt_rand($min, $max);
}
shuffle($generated);
$position = mt_rand(0, 99);
return $generated[$position];
}
?>发布于 2012-01-05 19:50:12
关于编程中随机函数的讨论由来已久。
看看这个:http://en.wikipedia.org/wiki/Random_number_generation
不管怎么说。随机函数今天是如此之好,以至于它们(我称之为)尽可能地接近随机。没有办法预测1,32之间的结果(或任何其他数字)。问题是,这些数字并不是真正随机的,因为计算机不能进行这样的操作。
我想说的是,除非你是在为五角大楼写东西,否则rand函数已经足够好了。
发布于 2012-01-05 19:49:17
假设是Linux系统,您可以使用/dev/urandom (或从中读取)或/dev/random (小心,它可能会阻塞)作为伪随机数生成器的种子。
发布于 2018-05-23 22:32:21
在PHP7版本之后,你也可以使用random_int()。
看看这个:http://php.net/random_int
https://stackoverflow.com/questions/8741967
复制相似问题