PHP 实现图片验证码

步骤

  • 产生随机字符串

  • 创建一张简单的图片,设置背景色,文本色

  • 再加一些干扰线,干扰素

  • 输出图像

  • 销毁图像资源

    <?php//PHP生成图片验证码class VerifyImage{private $verifyCode;private $image;//生成随机字串private function createCode($type=1,$length=4){if ($type == 1) {$verifyCode = implode('', range(0, 9));}elseif ($type == 2) {$verifyCode = implode('', array_merge(range('a', 'z'),range('A', 'Z')));}else{$verifyCode = implode('', array_merge(range('a', 'z'),range(0, 9),range('A', 'Z')));}//判断生成字符是否符合要求if (strlen($verifyCode)<$length) {return false;}//打乱字符串$verifyCode = str_shuffle($verifyCode);return substr($verifyCode, 0,$length);}//生成图片,并加入干扰线,干扰素public function createImage($type=1,$length=4,$width = 80,$height = 40){$verifyCode = $this->createCode($type,$length);$image = imagecreatetruecolor($width, $height);//白色背景$white = imagecolorallocate($image, 255, 255, 255);//字体颜色$fontStyle = imagecolorallocate($image, rand(0, 255),rand(0, 255), rand(0, 255));;imagefill($image, 0, 0, $white);imagestring($image, 5, 10, 10, $verifyCode, $fontStyle);//加入干扰点for($i = 0; $i < 80; $i++) {  $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));  imagesetpixel($image, rand(0, $width), rand(0,$height), $color);  }//干扰线  for($i = 0; $i < 5; $i++) {  $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));  imageline($image, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $color);  } //输出图片header("Content-type: image/png"); imagepng($image);//释放资源imagedestroy($image);}
    }$im = new VerifyImage();;
    $im->createImage(3);?>

PHP 实现图片验证码相关推荐

  1. java爬取验证码图片_JAVA HttpClient实现页面信息抓取(获取图片验证码并传入cookie实现信息获取)...

    JAVA HttpClient实现页面信息抓取(获取图片验证码并传入cookie实现信息获取) 发布时间:2018-05-18 16:41, 浏览次数:632 , 标签: JAVA HttpClien ...

  2. 前端验证码后端返回一个图片_Web后端开发(6)——简易图片验证码的制作

    大家在登录或注册某些网站的时候经常会看到一些随机的图片验证码,那么这些验证码到底是怎么制作的呢?下面我们就从最简单的制作方法中学一下验证码的制作过程. 创建图片对象 要制作图片验证码,首先要创建一个图 ...

  3. 图片验证码把我逼成了人工智障

    上网登录日常:请证明你不是机器人. 可一看到某些验证码,强迫症患者首先就蚌埠住了: 你说最右那俩方块我到底是选还是不选呢? 还经常会让人产生这样的思考: 红绿灯的杆子到底算不算红绿灯呢? 在终于向机器 ...

  4. dotnet core Linux下图片验证码解决方案

    dotnet core Linux下图片验证码解决方案 参考文章: (1)dotnet core Linux下图片验证码解决方案 (2)https://www.cnblogs.com/xxff/p/9 ...

  5. 字符识别Python实现 图片验证码识别

    字符型图片验证码识别完整过程及Python实现 1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...

  6. 图片验证码的JAVA工具类

    我们平时开发时经常会遇到需要图片验证码,基础的验证码包括了数字.字母.甚至可能有汉字.下面我给出一个简单的工具类. package com..ankang.tony.util;import java. ...

  7. linux下tomcat6无法显示图片验证码 少了图形插件

    linux下tomcat6无法显示图片验证码(windows下显示正常) 原创 2015年10月20日 10:31:47 3526 linux下tomcat6无法显示图片验证码(windows下显示正 ...

  8. PHP登录带图片,PHP登录注册完整图片验证码实现

    通过上一篇 PHP gd简单画图学习后.这篇将继续探索实现PHP图片验证码的实现.效果图如下 为什么需要验证码? 验证码设计.验证码一使用于用户注册和登录.主要是防止机器批量注册用户或机器频繁测试登录 ...

  9. javaweb利用servlet与struts2实现可点击刷新的基础图片验证码

    javaweb利用servlet实现图片验证码 验证码是登录验证的技术,可以一定程度防止恶意脚本刷网站,造成服务器压力. 具体实现思想很简单: 首先利用servlet产生一个随机的验证码, 保存在se ...

  10. 网页登陆验证之图片验证码

    图片验证码:登陆网页时,生成随机图片验证码,在网页中显示出来,并把验证码保存下来用以登陆判断. 所用技术:tornado框架,自定义生成图片验证码的python文件及其相应字体文件,io模块,pill ...

最新文章

  1. AV1,实时编码READY
  2. Rsa2加密报错java.security.spec.InvalidKeySpecException的解决办法
  3. 小熊的人生回忆(二)
  4. Go编译android,在Android中引用golang编译的aar包
  5. 陕西西咸新区沣西新城大数据产业发展思考
  6. 《算法的乐趣》终于出版了
  7. Windows 7常见蓝屏代码解决办法
  8. 点分十进制IP和网络字节序IP互转
  9. 360能删除mysql吗_如何把Mysql卸载干净(亲测有效)
  10. Esxi通过U盘启动
  11. 繁体字转换为中文python
  12. 泰克示波器如何和pc连接
  13. 怎样查找某个外文期刊的文献?
  14. HTTP 接口设计指北
  15. 软件测试基础知识学习
  16. Excel设置行高列宽单元格为正方形,行列比例
  17. 分享一个普通程序员的“沪漂”六年的历程以及感想
  18. 栈的实现(C语言版)
  19. vue生命周期函数面试题
  20. android获取系统资源文件,Android 系统文件获取

热门文章

  1. python中count的作用_python中内置的.count是什么?
  2. pythonrandrange_Python3 randrange() 函数
  3. cv2 画多边形不填充_你不知道的4种方法:python方法绘制扇形
  4. kindle的xray怎么用_Xray使用的一些经验分享
  5. GPU Gems1 - 19 基于图像的光照(Image-Based Lighting)
  6. Java生鲜电商平台-促销系统的架构设计与源码解析
  7. 1.Consul 简介和环境搭建
  8. Qt与FFmpeg联合开发指南(二)——解码(2):封装和界面设计
  9. MVC源码分析 - Action查找和过滤器的执行时机
  10. BZOJ4426 : [Nwerc2015]Better Productivity最大生产率