PHP中使用srand来初始化随机数,通常选用time()函数来生成种子,但是这也带来了安全问题,也就是如果我可以获取这个种子,那么我就·可以生成这个特定的随机数,换句话说,相同的种子会产生相同的随机数,写个脚本测试一下。

<?php
    $sead = time();
    echo "sead: ".$sead;
    srand($sead);
    echo "<br />"."rand: ".rand();

    $sead2 = $sead;
    srand($sead2);
    echo "<br />"."rand: ".rand();
?>

运行结果如下:
QQ截图20140810151626.png

结果是一样的,在西安比赛就被这个问题坑到了,一直在想着去爆破生成的随机数,却没有想到爆破种子。