本文目录一览:
- 1、php.一定时间内随机数不变。要怎么做。
- 2、php生成随机数字,范围1-100,每次生成一个数字,可以重复
- 3、php随机数方法,html的脚本调用,每次结果都一样为什么
- 4、在PHP安全随机数生成问题,怎么解决
- 5、php 如何实现,从数组中随机取出数据,还要保证下次不会再取到
- 6、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就好了。