论坛中为了防止灌水,出现了很多的验证码的插件,现在这里介绍一个非常简单的自定义验证码函数,这个验证码实现的原理就是通过php扩展的gd库来实现的。
给出百度百科对验证码的定义“验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区),我们利用比较简易的方式实现了这个功能。”
通过上面的介绍,其实验证码就是一种编码,这种编码用来放置机器人来暴力破解的,可以是一些难以识别的图像,也可以是一些交互工作,或者一些图形计算公式。下面给出简易php验证码:
<?php
function image_code($length)
{
header('Content-Type: image/png');
$rand = '';
for($i=0;$i<$length;$i++)
{
$rand .= dechex(rand(0,15));
}
$im = imagecreatetruecolor(75,25);
$blue = imagecolorallocate($im,0,102,255);
imagefill($im,0,0,$blue);
$white = imagecolorallocate($im,255,255,255);
imageline($im,0,0,20,20,$white);
imageline($im,0,2,75,20,$white);
imagestring($im,5,0,0,"$rand",$white);
imagepng($im);imagedestroy($im);
}
?>
截图: