在linux下,PHP的rand函数是调用glibc库中的rand函数,其实现是有缺陷的。
state[i] = state[i-3] + state[i-31]
也就是说,rand生成的第i个随机数,等于i-3个随机数加i-31个随机数的和。
所以,我们只要生成大于32个随机数,就可以陆续推测出后面的随机数是多少了。
参考文章: http://www.sjoerdlangkemper.nl/2016/02/11/cracking-php-rand/ 安全箱子的秘密