您的位置:

php随机数使用一次作废,php获取随机数

本文目录一览:

php.一定时间内随机数不变。要怎么做。

这种情况,最简单的办法, 就是将随机数存到数据库中, 判断此数据存放是数据库时间, 如果超过48小时, 则重新生成一次, 再存入数据库, 否则的话, 就直接取数据库值。

php生成随机数字,范围1-100,每次生成一个数字,可以重复

echo mt_rand(1,100);

请使用rand函数

int rand ( int $min , int $max )

使用循环生成,假如想生成512个数字,就可以像这样:

$num = 1;//初始化一个变量为1

for($i = 1; $i = 512; $i++)//这个是看你要生成多少个数字,然后循环生成

{

if($num = 100)

$num = 1;//若变量的数字大于一百,则返回变成1

echo $num."/br";//输出变量数字,即生成的数字,后面的/br是换行

$num++;//然后将变量加1,即在前面生成的数字基础上加一

}

扩展资料:

密码学安全伪随机性。其定义为,给定随机样本的一部分和随机算法,不能有效的演算出随机样本的剩余部分。

真随机性。其定义为随机样本不可重现。实际上只要给定边界条件,真随机数并不存在,可是如果产生一个真随机数样本的边界条件十分复杂且难以捕捉(比如计算机当地的本底辐射波动值),可以认为用这个方法演算出来了真随机数。

参考资料来源:百度百科-随机数

php随机数方法,html的脚本调用,每次结果都一样为什么

……………………

这个

我怎么说

你访问一次url,服务器才会把php脚本解析一次。你写了的这些方法,在客户端的浏览器上已经没有了,只有alert(1), 所以你每次点button都一样。在客户端生成随机数,请用javascript。

script type="text/javascript"

function test(){

var r = Math.rand();

alert(r)

}

/script

在PHP安全随机数生成问题,怎么解决

0x00 rand()函数

rand()的随机数默认最大32767,可以用于爆破这里不再举例。

0x01 mt_rand()和mt_srand()函数

mt_srand()函数用于播种,PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,当PHP版本到了5.2.1后,通过修改算法修补了奇数和偶数的播种相等的问题,这样也导致了php5.2.0前后导致同一个播种后的mt_rand()的值不一样

5.2.6php4.2.0默认播种的算法也不是很强悍,当目标5.20时候,我们exp运行的环境也要是5.20的版本,mt_rand处理的数据都是不安全的。在web应用里很多都使用mt_rand来处理随机的session,比如密码找回功能等等。

如果你知道一个mt_rand()的值就可以,就可以推断出mt_srand()的种子值,从而推断出下一个mt_rand()值。

root@kali:~# php5 -r ‘mt_srand(123123123); echo mt_rand(),”\n”; echo mt_rand(),”\n”;’

519979806

1474031914

root@kali:~/php_mt_seed-3.2# ./php_mt_seed 519979806

Found 0, trying 100663296 - 134217727, speed 34831590 seeds per second

seed = 123123123

Found 1, trying 1509949440 - 1543503871, speed 34497359 seeds per second

seed = 1525862101

Found 2, trying 3992977408 - 4026531839, speed 34601190 seeds per second

seed = 3994356879

Found 3, trying 4261412864 - 4294967295, speed 34578163 seeds per second

Found 3

可见程序给出了三个种子,逐个测试即可:

root@kali:~# php5 -r ‘mt_srand(1525862101); echo mt_rand(),”\n”; echo mt_rand(),”\n”;’

519979806

14803299

root@kali:~# php5 -r ‘mt_srand(3994356879); echo mt_rand(),”\n”; echo mt_rand(),”\n”;’

519979806

978260809

123123123为真正的种子,这样就可以轻松拿到真正的种子,下一个要产生的随机数也就知道了

php 如何实现,从数组中随机取出数据,还要保证下次不会再取到

每次随机取出一个数之后,应该删除这个数,才可以保证下次不取到它。例如你的100个数,第一次随机取一个,然后删除它,下次再剩余的99里面随机取一个,这样就不会重复了。

写代码没难度了吧,你写写看,如果希望我继续回答,建议你粘贴一下你写的内容,不完整或者错误没关系,至少你去思考了的,而且我看了代码知道你错在哪里,才可以针对性的讲解。

没空等你写代码了,我把我的贴出来,今天晚上要熬夜加班,没空回来看帖子了,不好意思,希望你认真学习。

?php

$arr=array();

for ($i=1;$i=100;$i++) array_push($arr,$i);

print_r($arr);

for ($i=1;$i=100;$i++){

$n=rand(0,count($arr)-1);//产生随机数,最小值是0,最大值是数组剩余元素可数-1

echo $arr[$n]," ";//显示取的随机数

array_slice($arr,$n,1);//删除刚才取到的数

}

?

php随机数的问题

呵呵,我给你找出错来了

$_0="img src=\"_0.gif\"";

$_0="img src=\"_1.gif\"";

$_2="img src=\"_2.gif\"";

看到了吗!!让我找了好半天!!把第二个0改成1就好了。