PHP验证码类庫,php验证码类
/**
* @file
* @version 1.0
* @author 网海浪子
* @date 2006-3-30
* @email sxf02615@163.com
* @brief 验证码文件类
*
*/
?>
class CCheckCodeFile
{
//验证码位数
private $mCheckCodeNum = 4;
//产生的验证码
private $mCheckCode = '';
//验证码的图片
private $mCheckImage = '';
//干扰像素
private $mDisturbColor = '';
//验证码的图片宽度
private $mCheckImageWidth = '80';
//验证码的图片宽度
private $mCheckImageHeight = '20';
/**
*
* @brief 输出头
*
*/
private function OutFileHeader()
{
header ("Content-type: image/png");
}
/**
*
* @brief 产生验证码
*
*/
private function CreateCheckCode()
{
$this->mCheckCode = strtoupper(substr(md5(rand()),0,$this->mCheckCodeNum));
return $this->mCheckCode;
}
/**
*
* @brief 产生验证码图片
*
*/
private function CreateImage()
{
$this->mCheckImage = @imagecreate ($this->mCheckImageWidth,$this->mCheckImageHeight);
imagecolorallocate ($this->mCheckImage, 200, 200, 200);
return $this->mCheckImage;
}
/**
*
* @brief 设置图片的干扰像素
*
*/
private function SetDisturbColor()
{
for ($i=0;$i<=128;$i++)
{
$this->mDisturbColor = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,255), rand(0,255));
imagesetpixel($this->mCheckImage,rand(2,128),rand(2,38),$this->mDisturbColor);
}
}
/**
*
* @brief 设置验证码图片的大小
*
* @param $width 宽
*
* @param $height 高
*
*/
public function SetCheckImageWH($width,$height)
{
if($width==''||$height=='')return false;
$this->mCheckImageWidth = $width;
$this->mCheckImageHeight = $height;
return true;
}
/**
*
* @brief 在验证码图片上逐个画上验证码
*
*/
private function WriteCheckCodeToImage()
{
for ($i=0;$i<=$this->mCheckCodeNum;$i++)
{
$bg_color = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,128), rand(0,255));
$x = floor($this->mCheckImageWidth/$this->mCheckCodeNum)*$i;
$y = rand(0,$this->mCheckImageHeight-15);
imagechar ($this->mCheckImage, 5, $x, $y, $this->mCheckCode[$i], $bg_color);
}
}
/**
*
* @brief 输出验证码图片
*
*/
public function OutCheckImage()
{
$this ->OutFileHeader();
$this ->CreateCheckCode();
$this ->CreateImage();
$this ->SetDisturbColor();
$this ->WriteCheckCodeToImage();
imagepng($this->mCheckImage);
imagedestroy($this->mCheckImage);
}
}
$c_check_code_image = new CCheckCodeFile();
//$c_check_code_image ->SetCheckImageWH(100,50);//设置显示验证码图片的尺寸
$c_check_code_image ->OutCheckImage();
?>
itlearner注:能产生随机的英文字母和数字,不错!
PHP验证码类庫,php验证码类相关推荐
- php图片验证码类,php图片验证码类
[php] /** * 图片验证码类 * 生成图片类型验证码,验证码包含数字和大写字母,session中存放md5加密后的验证码 * * 使用方法: * $captcha = new Catpcha( ...
- 59-Java:String类案例:验证码、登录、隐私号码
String案例 1.String类开发验证码功能 需求: 随机生产一个5位的验证码,每位可能是数字.大写字母.小写字母. 分析: 定义一个String类型的变量存储验 a-z.A-Z.0-9 之间的 ...
- 注册与验证码php源代码,PHP验证码处理源代码
/** * 安全的验证码要:验证码文字扭曲.旋转,使用不同字体,添加干扰码. * @原作者: 流水孟春 * @修 改: flymorn **/ class YL_Security_Secoder { ...
- java shape 空间操作类_设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状rdquo...
问题标题 设计三个类:几何形状类(Shape).圆类(Circle).矩形类(.,请编写 Java程序,设计一个"形状&rdquo 2019-5-10来自ip:17.175.174. ...
- Python3 爬虫学习笔记 C12【验证码对抗系列 — 图形验证码】
Python3 爬虫学习笔记第十二章 -- [验证码对抗系列 - 图形验证码] 文章目录 [12.1]关于普通图形验证码 [12.2]tesserocr 库识别验证码 [12.3]pytesserac ...
- 发送手机短信验证码-后端、前端(验证码倒计时)
获取手机短信验证码-后端.前端(验证码倒计时) 后端 /*** 发送手机短信验证码** @return str* @throws Exception* @author 王永圣*/@RequestMap ...
- java邮箱验证码_Java实现邮箱验证码
原标题:Java实现邮箱验证码 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 邮箱验证码 一般能使用邮箱注 ...
- 图形验证码和短信验证码
图形验证码 注意事项 在虚拟环境中安装Pillow 字体文件需要在环境中测试一下(字体文件习惯放在和验证码同层目录下) import random # Image:是一个画板(context),Ima ...
- 用Python模拟识别图片验证码并发送手机验证码
1.导语 大家好,好久不见.又到每日分享Python小技能的时候了.最近因为疫情影响,所以更新内容比较慢-今天周一,就来更新一波,心血来潮,是时候上线经营了.其实也没想到有啥好分享的,不如分享一些干货 ...
最新文章
- python升级知识整理 第四节: 面向对象
- 聚类算法是什么?聚类(clustering)有哪些常用的评估方法?评估方法的公示是什么?轮廓系数(Silhouette Coefficient)、平方根标准误差、R方、ARI分别是什么?
- mysql 常见错误_mysql常见的错误提示问题处理小结
- c++11-type_traits类型萃取
- RequestMapping注解的作用
- 扩展模块 php.ini_php相关的配置,PHP动态扩展模块
- 用SmarterFox替换Internet Explorer的“加速器”
- Java中继承、this关键字、super关键字
- AWK 之 RS、ORS与FS、OFS
- Codeforces 816C/815A - Karen and Game
- 在a标签中添加点击事件
- eigen 编译_四足机器人优化方法:Webots下Eigen与qpOASES非线性优化库环境搭建
- 微信接口请求次数_微信接口调用次数限制 支付宝微信提现
- ad15的stc元件库_STC8系列 STC15系列STCMCU Protel_Altium原理图PCB器件封装库文件
- 知识图谱之WordNet
- 百度地图定位到了非洲的问题
- 安静!听听AI眼中岛国老师的声音~
- SAP-MM知识精解-自动科目记账(04-2)- 业务事物之“科目分组代码”的影响
- 左转向善,右转向恶,2020 年的九大 AI 风向标
- 键盘定位板图纸_忆光GD64 PRO:集键盘所有功能于一身
热门文章
- 智能家居--domoticz配置和风天气 HTTP/HTTPS poller 的使用以及domoticz_updateDevice的介绍
- Resource.arsc文件格式解析
- “消费盲返”的商业模式,你知道多少?
- 在网上打印双面和单面的资料哪里打印价格便宜
- Java通过快递鸟-查询物流
- vs2008 下配置 opencv2.0 的总结,以及 vc6 下配置 opencv1.0 的转帖
- STM32CubeIDE使用
- java算术运算符乘方_用java编写计算器 能够实现简单的加、减、乘、除、乘方、开方运算等;...
- 筑讯建筑:北京玫瑰博物馆——镂空的玫瑰盒子,从建筑外观判断建筑功用
- Java 类详解 9章