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];
}
?>
答案 0 :(得分:7)
关于编程中随机随机函数的讨论是古老的。
看看这个:http://en.wikipedia.org/wiki/Random_number_generation
反正。随机函数今天非常好,它们(我会称之为)尽可能接近随机。没有办法预测1,32(或任何其他数字)之间的结果。这笔交易是数字不是真正随机的,因为计算机无法进行这样的操作。
除非你为五角大楼写点什么,否则兰德函数已经足够好了
答案 1 :(得分:2)
假设有一个Linux系统,您可以使用/dev/urandom(或从中读取)或可能/dev/random
为您的伪随机数生成器播种(小心,它可以阻止)。
答案 2 :(得分:1)
在PHP 7版本之后,您也可以使用random_int()
。
看看这个:http://php.net/random_int