简单汉字验证码的php实现

简单汉字验证码的php实现
现在越来越多的网站开始使用汉字验证码,这不仅增加了我们的亲密感,而且增加了机器破解的难度。在这里,我将简单地谈论它。

创建背景画布
$图像=新建一个真彩色图像(200, 60);
背景imagecolorallocate美元(美元的图像,255, 255, 255);
imagefill($ 0, 0美元的图像,背景);

图干扰点
($ i = 0;$ i < 300;$ + +){
pixcolor美元= imagecolorallocate(合形象,兰德(150, 240)、(150, 240)、兰特兰特(150, 240));
照片=兰特(10, 190美元);
在美元=兰特(5, 55);
imagesetpixel(美元美元美元的图像,照片,妖精,pixcolor美元);
}
干扰线的绘制
4条水平线
($ i = 0;$ i < 5;$ + +){
颜色= imagecolorallocate美元(美元形象,兰德(50, 150),伦德(50, 150),伦德(50, 150));
linex1 = 0美元;
linex2 = 300美元;
liney1美元=($我+ 1)* 12;
liney2美元=($我+ 1)* 12;
imageline(合图像,linex1美元,liney1美元,linex2美元美元美元,liney2,颜色);
}

10竖线
($ i = 0;$ i < 30;$ + +){
颜色= imagecolorallocate美元(美元形象,兰德(50, 150),伦德(50, 150),伦德(50, 150));
linex1美元=($我+ 1)* 10;
linex2美元=($我+ 1)* 10;
liney1 = 0美元;
liney2 = 60美元;
imageline(合图像,linex1美元,liney1美元,linex2美元美元美元,liney2,颜色);
}

汉字绘制
文本=阵列('zhi美元','儿子','花','打开');
($ i = 0;$ i < 4;$ + +){
文字颜色= imagecolorallocate美元(美元形象,兰德(20, 100),伦德(20, 100),伦德(20, 100));
textx美元=我* 50 + 10;
texty =兰特(40, 60美元);
imagettftext(合图像,30,伦德(20, 50),textx美元美元美元,texty,文字颜色, /图书馆/字体/字体。TTF,$文本{ $我});
}
注意,字体文件必须用中文支持
代码使用UTF-8,GBK中国记得把{ iconv函数可以帮助你}

输出图像
页眉(内容类型:图像);
imagepng($图像);

Destruction of resources
销毁一图像($图像);
干了一件艰苦的工作,咱们干吧。中文验证码也显示出来。当然,当一个网站被使用时,将会有一个汉字库种子。由此,可以随机抽取特定数量的汉字。最后,它被记录到会话进行验证。

以上是本文的全部内容,希望大家能喜欢。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部