PHP如何实现简易的汉字验证码的思路

  介绍

这篇文章给大家分享的是有关PHP如何实现简易的汉字验证码的思路的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

现在越来越多的网站都开始使用汉字验证码了,既增加了我们国人的亲切感,同时也增加了机器破解的难度,这里我就简单粗暴的说一下。

<强>创建背景画布

$图像=imagecreatetruecolor (200、60);   (背景=imagecolorallocate美元形象,255年,255年,255年);   imagefill($形象,0,0,美元背景);

<强>画干扰点

,($ i=0;美元我& lt;300;$我+ +){   (pixColor=imagecolorallocate美元形象,兰德(150、240),兰德(150、240),兰德(150、240));   $ pixX=兰德(190);   调皮捣蛋的美元=兰德(55);   imagesetpixel(形象,pixX美元,调皮捣蛋的美元,美元pixColor);   }

<>强画干扰线

//4条水平线   ($ i=0;美元我& lt;5;$我+ +){   (lineColor=imagecolorallocate美元形象,兰德(150),兰德(150),兰德(150);   美元lineX1=0;   lineX2=300美元;   lineY1=美元($ i + 1) * 12;   lineY2=美元($ i + 1) * 12;   imageline(形象,lineX1美元lineY1美元,美元lineX2, lineY2美元,美元lineColor);   }//10条垂直线   ($ i=0;美元我& lt;30;$我+ +){   (lineColor=imagecolorallocate美元形象,兰德(150),兰德(150),兰德(150);   lineX1=美元($ i + 1) * 10;   lineX2=美元($ i + 1) * 10;   美元lineY1=0;   lineY2=60美元;   imageline(形象,lineX1美元lineY1美元,美元lineX2, lineY2美元,美元lineColor);   }

<>强画汉字

$=文本数组(& # 39;栀& # 39;& # 39;子& # 39;,& # 39;花& # 39;,& # 39;开& # 39;);   ($ i=0;美元我& lt;4;$我+ +){   (输入textColor=imagecolorallocate美元形象,兰德(100),兰德(100),兰德(100);   textX=我* 50 + 10美元;   $ textY=兰德(40、60);   imagettftext($形象,30,兰德(20、50),textX美元,美元textY,输入textColor美元,“/图书馆/字体/华文仿宋.ttf",美元文本($ i));   }

这里注意一下,字体文件一定要支持中文的

编码要使用utf - 8, gbk的中文记得要转吗【iconv函数可以帮助你】

<强>输出图像

头(“内容类型:图像/png");   imagepng图像($);

<>强销毁资源

imagedestroy图像($);

经过粗略的搞吧搞吧,中文验证码也就显示出来了,当然一般网站使用的时候会有一个汉字库种子,从里面随机取出特定个数的汉字显示,最后就是记录到会话进行验证了。

PHP如何实现简易的汉字验证码的思路