爱程序网

汉字验证码和算式验证码

来源: 阅读:

 大家知道简单数字或者字母验证码很容易被破解,但是算式验证码或者中文汉字验证码不容易被破解,

所以建议大家在使用验证码的时候,尽量用算式验证码或者中文汉字验证码。

    下面是我写的两种验证码代码,有用到的朋友可以参考下:

  原文转载自:http://www.phpskill.com/html/show-1-4410-1.html

    1.算式验证码:

<?phpsession_start();header("Content-type: image/png");$num1 = mt_rand(0,9);//第一位数$num2 = mt_rand(1,9);//第二位数$type_str = "+-*";//方法字符串集合$type = substr($type_str,rand(0,2),1);//随机方法$change = mt_rand(1,3);if($change==1){    $code = "$num1$type$num2=?";    $result = "$verifyCode=$num1$type$num2;";    eval($result);    $_SESSION['authnum_session'] = $verifyCode;  }elseif($change==2){    $result = "$verifyCode=$num1$type$num2;";    eval($result);    $code = $num1.$type."_=".$verifyCode;    $_SESSION['authnum_session'] = $num2;  }elseif($change==3){    $result = "$verifyCode=$num1$type$num2;";    eval($result);    $code = "_".$type.$num2."=".$verifyCode;    $_SESSION['authnum_session'] = $num1;  }$im = imagecreate(68,28);   $black = imagecolorallocate($im, 0,0,0);     $white = imagecolorallocate($im, 255,255,255);$gray = imagecolorallocate($im, 200,200,200);$red = imagecolorallocate($im, 255, 0, 0);imagefill($im,0,0,$white);           imagestring($im, 5, 10, 8, $code, $black);          for($i=0;$i<70;$i++) {    imagesetpixel($im, mt_rand(0, 58) , mt_rand(0, 28) , $black);     imagesetpixel($im, mt_rand(0, 58) , mt_rand(0, 28) , $red);     imagesetpixel($im, mt_rand(0, 58) , mt_rand(0, 28) , $gray);         }imagepng($im);imagedestroy($im);    ?>

相关文章列表: