1. 云栖社区>
  2. PHP教程>
  3. 正文

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

作者:用户 来源:互联网 时间:2017-12-01 20:58:15

php验证随机问答安全性个人一个不错认为

写了一个PHP随机问答验证码,安全性个人认为还是不错的。 - 摘要: 本文讲的是写了一个PHP随机问答验证码,安全性个人认为还是不错的。, wangking717 写道安全特点一:1.生成的内容不是最终结果,而是一个问答系统,需要用户回答该问题,安全系数较传统验证码更为严谨。2.生成的每个数字的颜色,字体,位置都是随机的,这样别人很难捕获到程序的规则。(干扰线就没去弄了) 




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);
?>

 


打完收工。。呵呵。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 验证 , 随机 , 问答 , 安全性 , 个人 , 一个 , 不错 , 认为 ,以便于您获取更多的相关知识。