加入干扰的生成验证码代码

 更新时间:2016年11月25日 16:58  点击:1803
本款php生成验证码代码原理生成随机数-->创建图片-->随机数写进图片-->保存在session中 ,看一下流程验证码图片生成 通知浏览器将要输出PNG图片 准备好随机数发生器种子 srand((double)microtime()*1000000); 将四位整数验证码绘入图片
 代码如下 复制代码

/*=====================
产生随机字符串函数
=====================*/
function random($length) {
 $hash = '';
 $chars = 'abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz';
 $max = strlen($chars) - 1;
 mt_srand((double)microtime() * 1000000);
 for($i = 0; $i < $length; $i++) {
  $hash .= $chars[mt_rand(0, $max)];
 }
 return $hash;
}

//验证码图片生成

 session_start();
    //通知浏览器将要输出png图片
    header("content-type: image/png");
    //准备好随机数发生器种子 
    //srand((double)microtime()*1000000);
    //准备图片的相关参数  
    $im = imagecreate(62,22);
    $black = imagecolorallocate($im, 0,0,0);  //rgb黑色标识符
    $white = imagecolorallocate($im, 255,255,255); //rgb白色标识符
    $gray = imagecolorallocate($im, 179,183,185); //rgb灰色标识符
    //开始作图    
    imagefill($im,0,0,$gray);
    //while(($randval=rand()%100000)<10000);{
        //$_session["check_code"] = $randval;
        //将四位整数验证码绘入图片
  $randval=random(4);
  $_session["check_code"]=$randval;
        imagestring($im, 5, 10, 3, $randval, $white);
    //}
    //加入干扰象素   
    for($i=0;$i<150;$i++){
        $randcolor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
        imagesetpixel($im, rand()%70 , rand()%30 , $white);
    }
    //输出验证图片
    imagepng($im);
    //销毁图像标识符
    imagedestroy($im);

?>

本文章免费提供一款php图片处理类:缩略,裁剪,圆角,倾斜代码,他可以切出不同风格的图片哦,哈哈,比其它的在线切图要好很多了哦。
 代码如下 复制代码
class resizeimage
{
   //图片类型
   var $type;
   //实际宽度
   var $width;
   //实际高度
   var $height;
   //改变后的宽度
   var $resize_width;
   //改变后的高度
   var $resize_height;
   //是否裁图
   var $cut;
   //源图象
   var $srcimg;
   //目标图象地址
   var $dstimg;
   //圆角源
   var $corner;
   var $im;

function resizeimage($img, $corner, $wid, $hei,$c, $corner_radius, $angle)
   {
       $this->srcimg = $img;
           $this->corner = $corner;
       $this->resize_width = $wid;
       $this->resize_height = $hei;
       $this->cut = $c;
           $this->corner_radius = $corner_radius;
           $this->angle = $angle;
       //图片的类型
       $this->type = substr(strrchr($this->srcimg,"."),1);
       //初始化图象
       $this->initi_img();
       //目标图象地址
       $this -> dst_img();
       //--
       $this->width = imagesx($this->im);
       $this->height = imagesy($this->im);
       //生成图象
       $this->newimg();
       imagedestroy ($this->im);
   }
   function newimg()
   {
       //改变后的图象的比例
       $resize_ratio = ($this->resize_width)/($this->resize_height);
       //实际图象的比例
       $ratio = ($this->width)/($this->height);
       if(($this->cut)=="1")
       //裁图
       {
           if($ratio>=$resize_ratio)
           //高度优先
           {
               $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height);
               imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width,$this->resize_height, (($this->height)*$resize_ratio), $this->height);
                           $tmp = $this->rounded_corner($newimg,$this->resize_width);
               imagepng ($tmp,$this->dstimg);
           }
           if($ratio<$resize_ratio)
           //宽度优先
           {
               $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height);
               imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width)/$resize_ratio));
                           $tmp = $this->rounded_corner($newimg);
               imagepng ($tmp,$this->dstimg);
           }
       }
       else
      

 

 

本款是一款php 读取目录下图像文件哦,代码,他利用了opendir来打开目录然后获取文件后缀名,判断是否为指定文件。

 代码如下 复制代码

$directory = 'gallery';

$allowed_types=array('jpg','jpeg','gif','png');
$file_parts=array();
$ext='';
$title='';
$i=0;

$dir_handle = @opendir($directory) or die("there is an error with your image directory!");

while ($file = readdir($dir_handle))
{
 if($file=='.' || $file == '..') continue;
 
 $file_parts = explode('.',$file);
 $ext = strtolower(array_pop($file_parts));

 $title = implode('.',$file_parts);
 $title = htmlspecialchars($title);
 
 $nomargin='';
 
 if(in_array($ext,$allowed_types))
 {
  if(($i+1)%4==0) $nomargin='nomargin';
 
  echo '
  <div class="pic '.$nomargin.'" style="background:url('.$directory.'/'.$file.') no-repeat 50% 50%;">
  <a href="'.$directory.'/'.$file.'" title="'.$title.'" target="_blank">'.$title.'</a>
  </div>';
  
  $i++;
 }
}

closedir($dir_handle);

这是一款图象缩略函数哦,把上传的新图片给$srcfile然后进行文件按$thumbwidth 缩小图宽最大尺寸 与$thumbheitht 缩小图高最大尺寸 生成小图。

图象缩略函数
参数说明:

 代码如下 复制代码
$srcfile 原图地址;
$dir  新图目录
$thumbwidth 缩小图宽最大尺寸
$thumbheitht 缩小图高最大尺寸
$ratio 默认等比例缩放 为1是缩小到固定尺寸。
*/
function makethumb($srcfile,$dir,$thumbwidth,$thumbheight,$ratio=0)
{
 //判断文件是否存在
if (!file_exists($srcfile))return false;
 //生成新的同名文件,但目录不同
$imgname=explode('/',$srcfile);
$arrcount=count($imgname);
$dstfile = $dir.$imgname[$arrcount-1];
//缩略图大小
$tow = $thumbwidth;
$toh = $thumbheight;
if($tow < 40) $tow = 40;
if($toh < 45) $toh = 45;   
 //获取图片信息
    $im ='';
    if($data = getimagesize($srcfile)) {
        if($data[2] == 1) {
            $make_max = 0;//gif不处理
            if(function_exists("imagecreatefromgif")) {
                $im = imagecreatefromgif($srcfile);
            }
        } elseif($data[2] == 2) {
            if(function_exists("imagecreatefromjpeg")) {
                $im = imagecreatefromjpeg($srcfile);
            }
        } elseif($data[2] == 3) {
            if(function_exists("imagecreatefrompng")) {
                $im = imagecreatefrompng($srcfile);
            }
        }
    }
    if(!$im) return '';
    $srcw = imagesx($im);
    $srch = imagesy($im);
    $towh = $tow/$toh;
    $srcwh = $srcw/$srch;
    if($towh <= $srcwh){
        $ftow = $tow;
        $ftoh = $ftow*($srch/$srcw);
    } else {
        $ftoh = $toh;
        $ftow = $ftoh*($srcw/$srch);
    }
    if($ratio){
        $ftow = $tow;
        $ftoh = $toh;
    }
    //缩小图片
    if($srcw > $tow || $srch > $toh || $ratio) {
        if(function_exists("imagecreatetruecolor") && function_exists("imagecopyresampled") && @$ni = imagecreatetruecolor($ftow, $ftoh)) {
            imagecopyresampled($ni, $im, 0, 0, 0, 0, $ftow, $ftoh, $srcw, $srch);
        } elseif(function_exists("imagecreate") && function_exists("imagecopyresized") && @$ni = imagecreate($ftow, $ftoh)) {
            imagecopyresized($ni, $im, 0, 0, 0, 0, $ftow, $ftoh, $srcw, $srch);
        } else {
            return '';
        }
        if(function_exists('imagejpeg')) {
            imagejpeg($ni, $dstfile);
        } elseif(function_exists('imagepng')) {
            imagepng($ni, $dstfile);
        }
    }else {
        //小于尺寸直接复制
    copy($srcfile,$dstfile);
    }
    imagedestroy($im);
    if(!file_exists($dstfile)) {
        return '';
    } else {
        return $dstfile;
    }
}

?>

这是一款办外开的经典的php生成缩略图类函数,文件灵活实用,可以生成任何风格的图片,并且 可以把文本转换成图形。

copyright   : smart-info limited. all right reserved.
 author      : jacky cheung
 version     : 1.1
 create date : 24 september 2008
 last modify : 15 march 2009
*/

class gd
{
 var $font_face   = "";
 var $text   = "";
 var $size    = 12;
 var $color   = "#000000";
 var $angle   = 0;

 var $width   = 0;
 var $height   = 0;
 var $line_height = 0;
 
 var $type   = "png";
 var $chmod   = 0777;
 var $bg_color  = "#ffffff";
 var $quality  = 95;
 var $antialias  = true;
 
 var $x    = 0;
 var $y    = 0;
 

 /*___| convert text to image |___*/
  public function text2image ( $font_face="", $text="", $attributes=false, $width=0, $all=false )
  {
   $this->font_face  = $font_face;
   $this->text   = $text;
   $this->width  = $width;
   $this->size   = 12;
   $this->color  = "#000000";
   $this->angle  = 0;
   $this->line_height = 0;
   $this->setprop ( $attributes );
   
   if ( $this->width == 0 )
   {
    return $this->convert_text2image ( $this->text, $this->check_text_width( $this->text ) );
   } else {
    // word wrap
    if ( $all === false )
    {
     $text = split(" ", $this->text);
     $text = $this->word_wrap($this->text, $this->width, "<br>");
     $text = split("<br>", $text );
    } else if ( $all === true ) {
     $temp = array();
     for ( $i=0; $i<strlen($this->text); $i++ )
     {
      array_push ( $temp, mb_substr($this->text, $i, 1, "utf-8") );
     }
     $text = array();
     $count_width = 0;
     $i = 0;
     foreach ( $temp as $k => $t )
     {
      $prop = $this->check_text_width($t);
      if ( $count_width + floatval($prop["width"]) < $this->width )
      {
       $text[$i] = $text[$i] . $t;
       $count_width += floatval($prop["width"]);
      } else {
       $count_width = 0;
       $i++;
       $text[$i] = "";
      }
     }
    }
    
    $img = array();
    foreach ( $text as $k => $t )
    {
     $img[$k] = $this->convert_text2image ( $t,  $this->check_text_width( $t ) );
    }
    
    $w = 0;
    $h = 0;
    foreach ( $img as $k => $v )
    {
     $w = (imagesx($img[$k]) > $w) ? imagesx($img[$k]) : $w;

     if ($this->line_height == 0 ) $h += imagesy($img[$k]);
     else $h += ($k < count($img)-1) ? $this->line_height : imagesy($img[$k]);
    }
    
    $base_img = $this->createtransparent($w, $h);
    $locy = 0;
    foreach ( $img as $k => $v )
    {
     if ($k > 0)
     {
      $locy = ($this->line_height == 0) ? $locy + imagesy($img[$k]) : $locy + $this->line_height;
     }
     $base_img = $this->attachgdimage ( $img[$k], $base_img, array ("x"=>0, "y"=>$locy) );
    }
    return $base_img;
   }
  }
  private function word_wrap( $str, $width, $break )
  {
   $formatted = '';
   $position = -1;
   $prev_position = 0;
   $last_line = -1;
   
   /// looping the string stop at each space
   while( $position = mb_stripos( $str, " ", ++$position, 'utf-8' ) ) {
    if( $position > $last_line + $width + 1 ) {
     $formatted.= mb_substr( $str, $last_line + 1, $prev_position - $last_line - 1, 'utf-8' ).$break;
     $last_line = $prev_position;
    }
    $prev_position = $position;
   }
   
   /// adding last line without the break
   $formatted.= mb_substr( $str, $last_line + 1, mb_strlen( $str ), 'utf-8' );
   return $formatted;
  }


  public function convert_text2image ( $text, $prop )
  {
   $im   = imagecreatetruecolor ( $prop["width"], $prop["height"] );
   $rgb   = $this->getrgb ( $this->color );
   $color   = imagecolorallocate ( $im, $rgb["red"], $rgb["green"], $rgb["blue"] );
   $img   = $this->createtransparent ( $prop["width"], $prop["height"] );
   imagettftext ( $img, $this->size, $this->angle, 0, $prop["height"] - abs ( $prop["top"] ), $color, $this->font_face, $text );
   return $img;
  }
  public function check_text_width ( $text )
  {
   $prop = array();
   $bbox    = imagettfbbox ( $this->size, $this->angle, $this->font_face, $text );
   $prop["left"]  = $bbox[0];
   $prop["right"]  = $bbox[2];
   $prop["top"] = $bbox[1];
   $prop["bottom"] = $bbox[7];
   $padding  = 2;
  
   $prop["width"]  = abs($prop["left"]) + abs($prop["right"])  + $padding;
   $prop["height"] = abs($prop["top"])  + abs($prop["bottom"]) + $padding;
   
   return $prop;
  }


 /*___| save to image file |___*/
  public function save($gdimage, $filename, $attributes=false)
  {
   $this->type   = "png";
   $this->chmod   = 0777;
   $this->bg_color  = "#ffffff";
   $this->quality  = 95;
   $this->antialias = true;
   
   $this->setprop ( $attributes );
   
   // process
   switch ( strtolower ( $this->type ) )
   {
    case "jpeg":
    case "jpg":
     $gdimage = $this->createbackground($gdimage, imagesx($gdimage), imagesy($gdimage));
     imagejpeg ( $gdimage, $filename, $this->quality );
     break;
    case "gif":
     $gdimage = $this->createbackground($gdimage, imagesx($gdimage), imagesy($gdimage));
     imagegif ( $gdimage, $filename );
     break;   
    case "png":
    default :
     imagepng ( $gdimage, $filename );
     break;
   }
   chmod ( $filename, $this->chmod );
  }


 /*___| create gd background image |___*/
  public function createbackground($gdimage, $width, $height)
  {
   $img = imagecreatetruecolor ( $width, $height );
   $rgb = $this->getrgb ( $this->bg_color );
   $color = imagecolorallocate ( $img, $rgb["red"], $rgb["green"], $rgb["blue"] );
   imagefill ( $img, 0, 0, $color );
   imagecopyresampled ( $img, $gdimage, 0, 0, 0, 0, $width, $height, $width, $height );
   return $img;
  }


 /*___| create gd transparent image |___*/
  public function createtransparent($width, $height)
  {
   $img = imagecreatetruecolor($width, $height);
   imagealphablending($img, false);
   imagesavealpha($img, true);
   $transparent = imagecolorallocatealpha($img, 0, 0, 0, 127);
   imagefilledrectangle($img, 0, 0, $width, $height, $transparent);
   imagecopyresampled($img, $img, 0, 0, 0, 0, $width, $height, $width, $height);
   return $img;
  }

 
 /*___| load image |___*/
  public function createimagefrom($filename, $alpha=true)
  {
   if ( function_exists ( "exif_imagetype" ) )
   {
    if ( exif_imagetype ( $filename )   == imagetype_jpeg ) { return $this->createfromjpeg ( $filename ); }
    else if ( exif_imagetype ( $filename )  == imagetype_gif  ) { return $this->createfromgif  ( $filename ); }
    else if ( exif_imagetype ( $filename )  == imagetype_png  ) { return $this->createfrompng  ( $filename, $alpha ); }
   }
   else
   {
    if ( strstr ( strtoupper ( $filename )  , ".jpg" )  || strstr ( strtoupper ( $filename ), ".jpeg" )) { return $this->createfromjpeg ( $filename ); }
    else if ( strstr ( strtoupper ( $filename ) , ".gif" )) { return $this->createfromgif ( $filename ); }
    else if ( strstr ( strtoupper ( $filename ) , ".png" )) { return $this->createfrompng ( $filename, $alpha ); }
   }
   return false;
  }
  private function createfromjpeg ( $filename ) { return imagecreatefromjpeg ( $filename ); }
  private function createfromgif  ( $filename ) { return imagecreatefromgif  ( $filename ); }
  private function createfrompng  ( $filename, $alpha=true )
  {
   if ( $alpha )
   {
    list ( $width, $height ) = getimagesize ( $filename );
    $png_img = imagecreatefrompng ( $filename );
    $img = imagecreatetruecolor ( $width, $height );
    imagealphablending ( $img, false );
    imagesavealpha ( $img, true );
    imagecopyresampled ( $img, $png_img, 0, 0, 0, 0, $width, $height, $width, $height );
   } else {
    $img = imagecreatefrompng ( $filename );
   } 
   return $img;
  }
 
 
 /*___| attach background image |___*/
  public function attachbackgroundimage ( $gdimage, $filename, $attributes=false )
  {
   $this->x = 0;
   $this->y = 0;
   $this->setprop ( $attributes );
  
   $img = $this->createimagefrom ( $filename );
   imagecopyresampled ( $img, $gdimage, $this->x, $this->y, 0, 0, imagesx($gdimage), imagesy($gdimage), imagesx($gdimage), imagesy($gdimage) );
   return $img;
  }


 /*___| attach image |___*/
  public function attachimage ( $source, $target, $filename, $image_attributes=false, $attributes=false )
  {
   $source_img = $this->createimagefrom ( $source );
   $target_img = $this->attachbackgroundimage ( $source_img, $target, $attributes );
   $this->save ( $target_img, $filename, $image_attributes );
  }
  
 
 /*___| attach gd image resource |___*/
  public function attachgdimage ( $gd_source, $gd_target, $attributes=false )
  {
   $this->x  = 0;
   $this->y  = 0;
   $this->width = 0;
   $this->height = 0;
   $this->setprop ( $attributes );
   
   imagealphablending($gd_target, true );
   imagealphablending($gd_source, true );
   imagecopy ( $gd_target, $gd_source, $this->x, $this->y, 0, 0, imagesx($gd_source), imagesy($gd_source) );
   return $gd_target;
  }
 
 
 /*___| get rgb color |___*/
  public function getrgb($hex)
  {
   $rgb["red"]   = hexdec ( substr ( $hex, 1, 2 ) ) ;
   $rgb["green"] = hexdec ( substr ( $hex, 3, 2 ) ) ;
   $rgb["blue"]  = hexdec ( substr ( $hex, 5, 2 ) ) ;
   return $rgb;
  }
 
 
 /*___| set properties |___*/ 
  private function setprop ( $attributes=false )
  {
   if ( $attributes ) { foreach  ( $attributes as $key => $value ) { $k = strtoupper ( $key ); $this->$k = $value; } }
  }
}

//调用 方法

 代码如下 复制代码
$imgresize = new imagetransform();
$imgresize->sourcefile = $source.$file;
$imgresize->targetfile = $destination.$file;
$imgresize->chmodvalue = 0777; 
$imgresize->resizetowidth = $tw;
$imgresize->resizetoheight = $th;
$imgresize->jpegoutputquality = 100;
$imgresize->resizeifsmaller = false;
$imgresize->resize();

?>

[!--infotagslink--]

相关文章

  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • JS实现随机生成验证码

    这篇文章主要为大家详细介绍了JS实现随机生成验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-06
  • php二维码生成

    本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
  • jQuery Real Person验证码插件防止表单自动提交

    本文介绍的jQuery插件有点特殊,防自动提交表单的验证工具,就是我们经常用到的验证码工具,先给大家看看效果。效果图如下: 使用说明 需要使用jQuery库文件和Real Person库文件 同时需要自定义验证码显示的CSS样式 使用实例...2015-11-08
  • Java生成随机姓名、性别和年龄的实现示例

    这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
  • C#生成随机数功能示例

    这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • jQuery为动态生成的select元素添加事件的方法

    下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
  • Jquery插件实现点击获取验证码后60秒内禁止重新获取

    通过jquery.cookie.js插件可以快速实现“点击获取验证码后60秒内禁止重新获取(防刷新)”的功能效果图:先到官网(http://plugins.jquery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下:复制代码 代码如下: <!DOCTYPE ht...2015-03-15
  • PHP自动生成后台导航网址的最佳方法

    经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
  • php生成唯一数字id的方法汇总

    关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
  • php实现点击可刷新验证码

    验证码类文件 CreateImg.class.php <&#63;php class ValidationCode { private $width,$height,$codenum; public $checkcode; //产生的验证码 private $checkimage; //验证码图片 private $disturbColor = ''; /...2015-11-08
  • 基于JavaScript实现验证码功能

    这篇文章主要介绍了基于JavaScript实现验证码功能的相关资料...2017-04-03
  • js生成随机数的方法实例

    js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1 之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要: (1)生成一个 0 - 1...2015-10-21
  • 单击按钮发送验证码,出现倒计时的简单实例

    下面小编就为大家带来一篇单击按钮发送验证码,出现倒计时的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 代码...2017-07-06
  • Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法

    这篇文章主要介绍了Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-06-24
  • PHP验证码生成与验证例子

    验证码是一个现在WEB2.0中常见的一个功能了,像注册、登录又或者是留言页面,都需要注册码来验证当前操作者的合法性,我们会看到有些网站没有验证码,但那是更高级的验证了,...2016-11-25
  • PHP生成不同颜色、不同大小的tag标签函数

    复制代码 代码如下:function getTagStyle(){ $minFontSize=8; //最小字体大小,可根据需要自行更改 $maxFontSize=18; //最大字体大小,可根据需要自行更改 return 'font-size:'.($minFontSize+lcg_value()*(abs($maxFo...2013-10-04
  • 基于Pytorch版yolov5的滑块验证码破解思路详解

    这篇文章主要介绍了基于Pytorch版yolov5的滑块验证码破解思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-25
  • jQuery实现发送验证码控制按钮禁用功能

    最近接到新需求,需要实现一个点击发送验证码之后,按钮禁用,在5秒之后取消禁用,看似需求很简单,实现起来还真的好好动动脑筋,下面小编把jquery控制按钮禁用核心代码分享给大家,需要的朋友参考下吧...2021-07-24
  • 工信部的ICP备案网站登录时验证码一直输入不正确怎么回事

    工信部的ICP备案网站登录时验证码一直输入不正确怎么回事,为了防止一些机器采集人工信部对于查询验证做得识别度极低,所以许多的朋友都会发现输入验证码一直有问题了,那...2016-10-10