PHP验证码生成原理与实现

PHP验证码生成原理与实现
验证码的形式越来越多,但用js验证码总是不方便,所以我们学会了PHP实现验证码。嗯,其实什么都没有做,但不想浪费时间,所以我学会执行PHP验证码的。正所谓,技术不压身。此外,它也可以被封装成一个函数,这也方便以后使用时,当然它不是包装。

你先附上一张效果图。
因为注册经常被用来防止机器的恶意注册。这里我发布了PNG图像验证码的基本图片,很简单但很清晰。

1。制作PNG图片

2。设置图片的背景

三.设置字体的颜色和样式

4。产生4位数字的随机验证码。

5、调整每个字符和位置的旋转角度,生成PNG图像。

6、对原始配准线进行噪声和干扰分析,防止图像的恶意配准。

7。输出图片

8,释放画面的记忆。

Authcode.php文件

代码
< PHP
session_start();
头('content-type:图像/格式);
创建图片
我=画面欣赏美元($ X = 130,Y元= 45);
BG = imagecolorallocate美元(合我,伦德(50200)、(0155)、兰特兰特(0155)); / /叫imagecolorallocate第一时间()将基于图像填充背景色
字体颜色= imagecolorallocate美元(合我,255, 255, 255); / /字体颜色
$字体样式=摇滚。TTF '; / /字体样式,可以发现在C: Windows 字体文件夹,我把它放在同一目录下,authcode.php文件,这里可以替换其他字体样式
随机字符
($ i = 0;$ i < 4;$ + +){
randasciinumarray美元=阵列(RAND(48,57)、伦德(65,90));
randasciinum美元=美元randasciinumarray {兰德(0, 1)};
randstr美元= CHR($ randasciinum);
imagettftext(合我,30,伦德(20)-兰德(0.25),5 + $我* 30、伦德(30、35美元美元),字体颜色,字体样式,randstr美元);
为验证码= $ randstr;
}
_session美元{ 'authcode} = $ randfourstr; / /用户和用户输入验证码的比较
线路干扰
($ i = 0;$ i < 8;$ + +){
颜色= imagecolorallocate美元(合我,兰德(0255)、(0255)、兰特兰特(0255));
imageline(合我,伦德(0,X),0兰特(0,X),Y元,美元的颜色);
}
干扰
($ i = 0;$ i < 250;$ + +){
imagesetpixel(合我,伦德(0,X),伦德(0,Y元美元),字体颜色);
}
imagepng(为我);
销毁一图像(为我);
>
以上是php验证码生成原理及实现的相关知识,希望能对您有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部