mt_rand(10,100)的意思是有一个10到100之间的随机数字(包括10和100)
time()当前时间的秒数
cyg.php
<html lang="zh"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form action="cyg.php" method="POST"> <?php $module=mt_rand(100000,999999);?> <input type="text" name="sec_name" value=""/> <input type="hidden" name="module" value="<?php echo $module;?>"/>//随机数字(100000---->999999) <input type="hidden" name="timestamp" value="<?php echo time();?>"/>//时间戳。就是说当前时间的秒数 <input type="hidden" name="token" value="<?php echo md5($module.'#$@%!^*'.time());?>"/>//通过md5+'#$@%!^*'+time(当前时间的秒数)全部进行md5加密就是token了 </form> </body> </html> <?php $module = $_POST['module']; $timestamp = $_POST['timestamp']; $token = md5($module.'#$@%!^*'.$timestamp);//和表单上面的一样的运算呢 if($token != $_POST['token']){//如果不一样就匹配不成功了,else否则成功 echo('非法数据来源'); exit(); } echo "token匹配成功啦"; ?>
效果