手机版

PHP验证码生成原理及实现

时间:2021-09-18 来源:互联网 编辑:宝哥软件园 浏览:

用表单实现的验证码越来越多,但是用js写验证码总是不方便,所以我学习了用php实现的验证码。好吧,其实也没什么可做的,但是我不想浪费时间,所以我学习了php来实现验证码。正所谓,本事不紧迫。而且还可以封装成函数,非常方便以后使用,但是现在不封装了。

首先,将渲染附加到每个人:

由于注册码经常被用来防止机器恶意注册,这里我发布一个生成png图像验证码的基本图片,非常简单但是很清晰:

1.生成png图片2。设置图片的背景颜色3。设置字体颜色和样式4。生成4位随机验证码5。调整每个生成字符的旋转角度和位置,并将其绘制在png图片6上。添加噪音和干扰线,防止套准机分析原图恶意套准7。输出图片8。释放图片占用的内存。

Authcode.php档案

密码

?PHP session _ start();标题(' Content-type : image/png ');//创建图片$im=imagecreate($x=130,$ y=45);$bg=imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155));//对imagecolorplocate()的第一次调用将基于调色板将背景色$ font color=imagecolorplocate($ im,255,255,255)填充到图像中;//font color $ font style=' rock . TTF ';//字体样式,可在文件夹c: \ windows \ Fonts \下找到。我把它和authcode.php文件放在同一个目录下,其他的字体样式可以替换。//的随机字符为($ I=0;$ I 4;$ I){ $ randascinumarray=array(rand(48,57),rand(65,90));$ randascinium=$ randascininumarray[rand(0,1)];$ randStr=chr($ randAsciiNum);imagettftext($im,30,rand(0,20)-rand(0,25),5 $i*30,rand(30,35),$fontColor,$fontstyle,$ randStr);$authcode。=$ randStr} $ _ SESSION[' auth code ']=$ randfourttr;//将用户与用户输入的验证码进行比较//干扰行为($ I=0;$ i8$ I){ $ line color=imagecolor allocate($ im,rand(0,255),rand(0,255),rand(0,255));imageline ($im,rand(0,$x),0,rand(0,$x),$y,$ line color);}//干扰点为($ I=0;$ i250$i ){imagesetpixel($im,rand(0,$x),rand(0,$y),$ font color);} image png($ im);image destroy($ im);以上是关于PHP验证码的生成原理和实现的相关知识,希望对大家有所帮助。

版权声明:PHP验证码生成原理及实现是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。