Heim  >  Artikel  >  Backend-Entwicklung  >  写了一个PHP随机问答验证码,安全性个人认为仍是不错的

写了一个PHP随机问答验证码,安全性个人认为仍是不错的

WBOY
WBOYOriginal
2016-06-13 11:02:49713Durchsuche

写了一个PHP随机问答验证码,安全性个人认为还是不错的。

wangking717 写道
安全特点一:

1.生成的内容不是最终结果,而是一个问答系统,需要用户回答该问题,安全系数较传统验证码更为严谨。

2.生成的每个数字的颜色,字体,位置都是随机的,这样别人很难捕获到程序的规则。(干扰线就没去弄了)

?

如果有什么好的提议,可以留言,一起改善代码:

<?php  //$i为要写在画板的位置,$num为要写的文字  function rand4string($i,$num){      global $image_width,$image_height,$img;      $font=mt_rand(3,5);      $x=mt_rand(1,8)+$image_width*$i/6;      $y=mt_rand(1,$image_height/4);       $color=imagecolorallocate($img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));      imagestring($img,$font,$x,$y,$num,$color);  }  session_start();  header("content-type:image/png");  $image_width=80;  $image_height=18;  $img = imagecreate($image_width,$image_height);  imagecolorallocate($img,255,255,255);  $random4symbol = array("+","-","x");    //三个符号进行循环  $result = 0;  $symbol = $random4symbol[mt_rand(0,count($random4symbol)-1)];  $num1 = mt_rand(1,9);  rand4string(0,$num1);  $num2 = mt_rand(1,9);  switch ($symbol){      case "+":          $result = $num1 + $num2;          rand4string(1,"+");          break;      case "-":          $result = $num1 - $num2;          rand4string(1,"-");          break;      case "x":          $result = $num1 * $num2;          rand4string(1,"x");          break;  }  rand4string(2,$num2);  rand4string(3,"=");  rand4string(4,"?");  $_SESSION['code'] = $result;  imagepng($img);  imagedestroy($img);  ?>  

?

打完收工。。呵呵。

1 楼 521069108 2011-09-21  
唔,有点意思,能只能增加中文回答之类的不呢?

2 楼 521069108 2011-09-21  
估计要存数据库才能实现我说的那样 - 0
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHPSecInfo检察环境的正确配置Nächster Artikel:PHP5的部类约束