`
长虫的梅子
  • 浏览: 43296 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

验证码生成类

    博客分类:
  • PHP
PHP 
阅读更多
参考了一些验证码生成方法,下面按个人的想法做了些修改,方便以后使用。
效果图:



<?php
class authCode
{
    /**  
     * 生成验证码图片  
      *   
     * @param  int $i_width  宽度,默认为100  
     * @param  int $i_height 高度,默认为25  
     * @param  int $i_length 长度,默认为4  
     * @param  int $i_flag   显示类型 1 : 字符和数字(默认)	
                                   * 2 : 纯数字
                                       * 3 : 纯字符
      * @return resource
     */ 
      public static function display($i_width=100, $i_height=25, $i_length=4, $i_flag=1)
	 {
		// 可能显示的字符
		$string[1] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";  
		$string[2] = "012345678901234567890123456789012345"; 
		$string[3] = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ";
		$str = Array(); 
		for($i = 0;$i < $i_length;$i++){
		   $str[$i]   = $string[$i_flag][rand(0,35)];
		   $authcode .=  $str[$i];
		}
		// 将验证码存入session
		if ( !$_SESSION ) @session_start(); 
		$_SESSION["stat_authcode"] = $authcode ;
		
		// 生成图片句柄
		$im    = imagecreatetruecolor($i_width,$i_height);
		$white = imagecolorallocate($im,255,255,255); //第一次调用设置背景色
		$black = imagecolorallocate($im,0,0,0);       //边框颜色
		imagefilledrectangle($im,0,0,$i_width,$i_height,$white);   //画一矩形填充
		imagerectangle($im,0,0,$i_width-1,$i_height-1,$black);     //画一矩形框
		
		// 生成雪花背景
		for($i = 1;$i < 200;$i++){
		   $x     = mt_rand(1,$i_width-9);
		   $y     = mt_rand(1,$i_height-9);
		   $color = imagecolorallocate($im,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
		   imagechar($im,1,$x,$y,"*",$color);
		}
		// 将验证码写入图案
		for($i = 0;$i < count($str);$i++){
		   $x     = 13 + $i * ($i_width - 15)/$i_length;
		   $y     = mt_rand(3, $i_height / 3);
		   $color = imagecolorallocate($im,mt_rand(0,225),mt_rand(0,150),mt_rand(0,225));
		   imagechar($im,5,$x,$y, $str[$i],$color);
		}
		// 输出图片
		header("Content-type:image/jpeg"); 
		imagejpeg($im);
		imagedestroy($im);
	}
}
// 调用类的静态方法
authCode::display(100, 30, 6, 3);




  • 大小: 4.8 KB
分享到:
评论

相关推荐

    验证码生成类大全

    验证码生成类大全是一种用于网络安全验证的重要工具,它主要用于防止恶意自动化程序(如机器人)进行非法操作,例如批量注册、刷票或数据抓取。在Web应用中,验证码通常需要用户在提交表单前输入图像上显示的一串...

    验证码生成类-最好用的

    验证码生成类是IT领域中一个重要的安全机制,主要用于防止恶意自动化程序或机器人对网站或应用程序进行非法操作。在本文中,我们将深入探讨验证码生成类的相关知识点,并基于提供的文件信息进行详细解析。 首先,...

    java验证码生成类

    在Java中,我们可以创建一个自定义的验证码生成类来实现这一功能。这篇博客文章“java验证码生成类”提供了一个简单的示例,下面我们将深入探讨验证码生成的相关知识点。 首先,验证码的基本原理是生成一段随机的、...

    一个php验证码生成类代码.zip

    这个“一个php验证码生成类代码.zip”压缩包中包含了一个PHP验证码生成类,它能够帮助开发者轻松地创建具有背景、干扰元素和随机文本的图像验证码。 验证码类通常包括以下几个核心功能: 1. **生成随机字符串**:...

    php高安全验证码生成类

    对于这个验证码生成类,readme.md可能会详细解释如何配置字体目录、如何引入类文件、示例代码以及可能出现的问题和解决方案。 通过以上方法,我们可以构建一个具有较高安全性的PHP验证码生成类,有效防止自动化攻击...

    php验证码生成类.zip

    php验证码生成类

    asp.net验证码生成类

    ASP.NET验证码生成类主要用于在Web应用中创建安全的随机字符序列,用于验证用户输入是否有效,防止自动机器人或恶意程序的攻击。此类通常包括几个关键功能,如生成验证码字符串、创建验证码图片以及处理相关的安全...

    验证码生成类(支持汉字、数字+字母)

    本文将详细解析一个支持汉字、数字+字母的验证码生成类的实现,以及其在实际项目中的应用。 验证码生成的核心在于随机性和不可预测性。在这个类中,我们可以看到它提供了两种模式:汉字模式和数字+字母模式。这两种...

    一个php验证码生成类代码

    下面将详细介绍这个PHP验证码生成类的工作原理和关键知识点。 首先,验证码类通常会包含以下几个核心部分: 1. **图像初始化**:在PHP中,可以使用`imagecreatetruecolor()`函数创建一个新的真彩色图像资源,指定...

    WinForm验证码生成类

    WinForm中验证码生成类可以生成随机数和图片对初学者有很大的用处

    .NET验证码生成类 源代码

    在.NET框架中,我们可以自定义验证码生成类来实现这一功能。以下是对".NET验证码生成类 源代码"的详细解释。 验证码生成通常包括以下几个关键步骤: 1. **随机字符生成**: - 首先,我们需要生成一组随机的字符...

    验证码生成工具类

    验证码生成工具类是一种在Web应用中广泛使用的安全机制,它主要用于防止自动化的恶意操作,比如机器人注册、垃圾邮件发送等。这个工具类是用Java语言编写的,因此我们可以深入探讨一下Java验证码生成的相关技术和...

    java web 登录验证码生成类

    生成验证码图片 java类中获得验证码的方法: session.getAttribute("checkcode"); jsp页面中显示图片的方式: ${pageContext.request.contextPath}/checkcode.jsp"/&gt; 另外在web.xml中配置验证码类的加载: ...

    图片验证码生成类

    图片验证码的生成类 使用于asp.net core 版本的项目中

    验证码随机生成数字类

    在"ValidateCode"这个文件中,很可能是实现了以上步骤的一个验证码生成类。通过理解和使用这个类,开发者可以快速集成安全的随机数字验证码到自己的应用程序中,增强系统的安全性。 总的来说,验证码随机生成数字类...

Global site tag (gtag.js) - Google Analytics