手机验证码生成器,激活码生成器

  • 编辑: 颛孙鸿朗
  • 2019-11-08 12:45:43
  • 人阅读
虚拟号码生成器,现在,许多网站都有一个实现用户集。然而,为了防止机器人网络的攻击。必须限制登录或注册。强制输入机器在注册和登录时很难识别的字符串集是一个很好的选择。

现在很多网站都有实现用户集。然而为了防止机器人的网络攻击。限制登陆或者注册是有必要的。

在注册和登陆时强制要求输入一个机器难以识别的字符串集是一个不错的选择。虽然不能解决根本问题,但至少可以增加他们的成本。

利用PHP生成验证码需要用到GD2库。GD2库引用方法网络上有很多,不同操作系统导入方式也不同。

这段代码运行在WINDOS服务器平台

?php$iC = new idCode(5,60,30);$iC-createPNG();class idCode{ private $words = array('a','b', 'c','d','e','f','g','h','i','j','k','l', 'm','n','o','p','q','r','s','t','u','v', 'w','x','y','z','A','B','C','D','E','F', 'G','H','I','J','K','L','M','N','O','P', 'Q','R','S','T','U','V','W','X','Y','Z', '0','1','2','3','4','5','6','7','8','9'); private $fonts; private $count;//验证码字符数 private $height; private $width; private $path = '..\myfolder\fonts'; private $keys;//构造函数 public function __construct($count,$width,$height){$this-count = $count;$this-getFonts();$this-height = $height;$this-width = $width; }private function getFonts(){$dir = dir($this-path);while(false !== ($file = $dir-read())){if($file != '.' $file != '..'){$this-fonts[count($this-fonts)] = basename($file);}}$dir-close(); }private function createKeys(){for($i = 0;$i $this-count;$i ){$this-keys[$i]['char'] = $this-words[rand(0,count($this-words)-1)];//使用字体路径标识$this-keys[$i]['filename'] = $this-path.'\\'.$this-fonts[rand(0,count($this-fonts)-1)];} }public function createPNG(){$this-createKeys();//创建画布以及颜色块儿$bg = imagecreatetruecolor($this-width 10*2,$this-height 3*2);//两边留10px空白,上下3px$grey = imagecolorallocate($bg,155,155,155);$blue = imagecolorallocate($bg,0x00,0x00,0xff);//填充背景imagefill($bg,0,0,$grey);//添加字符$pwidth = $this-width/$this-count;$x;$y;for($i = 0;$i $this-count;$i ){$rotation = rand(-40,40);//偏转角度40$fontsize = 33;$width_txt;$height_txt;do{$fontsize--;$bbox = imagettfbbox($fontsize,$rotation,$this-keys[$i]['filename'],$this-keys[$i]['char']);$width_txt = $bbox[2] - $bbox[0];//x 0 2 4 6,y1 3 5 7;左下,右下,右上,左上$height_txt = $bbox[7] - $bbox[1];}while($fontsize 8 ($height_txt $this-height || $width_txt $pwidth));$fontcolor = imagecolorallocate($bg,rand(0,255),rand(0,255),rand(0,255));$x = 8 $pwidth*$i $pwidth/2 - $width_txt/2;//x坐标基本位置$y = $this-height/2 - $height_txt/2;imagettftext($bg,$fontsize,$rotation,$x,$y,$fontcolor,$this-keys[$i]['filename'],$this-keys[$i]['char']);}//绘制干扰线//根据字体酌情增加干扰线imageline($bg,0,15,40,10,$blue);//图像输出头文件header('Content-type:image/png');//输出png图像imagepng($bg);//清除缓存资源imagedestroy($bg); }public function checkKeys($input){if(count($input)!=$this-count){return 'ERROR:长度不正确.';}else{for($i=0;$i $this-count;$i ){//0 o O I l 1 校准,根据所选择的字体确定是否需要手动校准if($input[$i] != $this-keys[$i]['char']){return 'SUCCESS.';}else{return 'ERROR:请输入正确验证码.';}}} }}?

本文原标题:手机号验证码生成器,号码生成器

版权声明:本文由 颛孙鸿朗 整理编辑,如果侵权请联系我们!

转载注明出处:https://www.nintaus.net/houtai@123/makehtml_archives_action.php?endid=0&startid=0&typeid=0&totalnum=11732&startdd=9120&pagesize=20&seltime=0&sstime=1589370344&stime=&etime=&uptype=mkall&mkvalue=0&isremote=0&serviterm=

文章评论

共有 条评论来说两句吧...

用户名:

验证码:

Top