现在越来越多的
网站开始使用
汉字验证码,这不仅增加了我们的亲密感,而且增加了机器破解的难度。在这里,我将简单地谈论它。
创建背景画布
$图像=新建一个真彩色图像(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
销毁一图像($图像);
干了一件艰苦的
工作,咱们干吧。中文验证码也
显示出来。当然,当一个网站被使用时,将会有一个汉字库种子。由此,可以随机抽取特定数量的汉字。最后,它被记录到会话进行验证。
以上是本文的全部内容,希望大家能喜欢。