`
gaozhonghui
  • 浏览: 242601 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古自治区
社区版块
存档分类
最新评论

工具类_验证码

阅读更多
<%@page import="java.io.OutputStream"%>
<%@ page contentType="image/jpeg" pageEncoding="GBK" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
	Color getRandColor(int fc,int bc){	//给定范围获得随机颜色
        Random random = new Random();
        if(fc>255) fc=255;
        if(bc>255) bc=255;
        int r=fc+random.nextInt(bc-fc);
        int g=fc+random.nextInt(bc-fc);
        int b=fc+random.nextInt(bc-fc);
        return new Color(r,g,b);
	}
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

// 在内存中创建图象
int width=56, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 获取图形上下文
Graphics g = image.getGraphics();

//生成随机类
Random random = new Random();

// 设定背景色
//g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);

//设定字体
g.setFont(new Font("Courier New", Font.PLAIN, 18));

//画边框
//g.setColor(new Color(55,55,55));
//g.drawRect(0,0,width-1,height-1);

// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
/*for (int i=0;i<155;i++)
{
 	int x = random.nextInt(width);
 	int y = random.nextInt(height);
    int xl = random.nextInt(12);
    int yl = random.nextInt(12);
 	g.drawLine(x,y,x+xl,y+yl);
}*/

// 取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++){
    String rand=String.valueOf(random.nextInt(10));
    sRand+=rand;
    // 将认证码显示到图象中
    g.setColor(new Color(20+random.nextInt(10),20+random.nextInt(110),20+random.nextInt(210)));
	//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
    g.drawString(rand, 13*i+3, 16);
}
String sessionName = request.getParameter("VIName");
// 将认证码存入SESSION
if(sessionName==null) sessionName = "";
session.setAttribute("will_session_randCode_"+sessionName, sRand);

// 图象生效
g.dispose();

// 输出图象到页面
OutputStream os = response.getOutputStream();
ImageIO.write(image, "JPEG", os);
os.flush();
os.close();
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
%>

 

分享到:
评论

相关推荐

    java 验证码工具类 java 验证码工具类 java 验证码工具类

    java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java ...

    CaptchaUtil_Java验证码工具类_CaptchaUtil_

    CaptchaUtil 是 Java 语言封装的一个用于生成验证码的工具类,支持多种字体、干扰线、圈圈等作为背景,方便实用。

    验证码生成工具类

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

    java 验证码工具类 java 验证码工具类

    java 验证码工具类java 验证码工具类java 验证码工具类java 验证码工具类java 验证码工具类java 验证码工具类java 验证码工具类java 验证码工具类java 验证码工具类java 验证码工具类java 验证码工具类java 验证码...

    demo.rar_DEMO_delphi 数字识别_delphi 验证码_验证码识别 delphi

    这个识别引擎就是专门用来自动解析这类验证码的工具。 Delphi中的数字识别技术通常涉及到图像处理和模式识别。首先,源码可能会包含对图像的预处理步骤,如灰度化、二值化、噪声消除等,这些操作有助于简化图像并...

    OrcValidateCode_验证码识别_

    本项目"OrcValidateCode_验证码识别_"是基于Java实现的OCR(Optical Character Recognition,光学字符识别)验证码识别工具,它结合了图像处理和百度API调用来提升识别率。以下是关于这个项目的详细知识点: 1. **...

    用asp.net生成随机验证码.rar_.NET验证码_asp.net_asp.net C#_生成验证码_验证码

    总的来说,ASP.NET和C#为我们提供了丰富的工具和类库,使得创建验证码变得相对简单。通过理解和实践这些知识点,开发者可以为Web应用构建起一道有效的安全防线。在实际应用中,还可以根据需要进一步优化验证码的生成...

    纯Java验证码工具类

    "纯Java验证码工具类" 提供了一种简便的方法来生成这种安全机制,无需依赖其他语言或库。这个工具类可以被轻松地集成到任何Java项目中,为你的应用程序添加一道防线。 验证码生成通常包括以下几个关键步骤: 1. **...

    Java 验证码工具类

    可以通过调用此工具类来轻松实现验证码

    工具类和验证码

    在IT行业中,工具类(Tool Class)和验证码(CAPTCHA)是两个重要的概念,它们分别在软件开发的不同方面发挥着关键作用。 首先,我们来详细探讨工具类。工具类是一组静态方法的集合,通常不包含任何实例变量,因为...

    isbn.rar_MFC ISBN_验证码

    综上所述,这个MFC程序是一个用于验证ISBN码的实用工具,它利用了MFC提供的类库和组件,提供了友好的用户界面,以及严谨的ISBN码验证算法,确保了数据的准确性。对于学习MFC编程和了解ISBN验证逻辑的开发者来说,这...

    java生成图片的验证码工具类及其使用

    java生成验证码的工具类,这个现在有依赖可以直接引入调用,但这个工具类没有引入依赖,大家也容易看懂代码,理解其含义。也可直接去工具类中调整生成验证码的宽度、高度、颜色、背景颜色、生成的随机数数量、干扰线...

    验证码工具类

    在登录页面 验证码 登录 封装好的工具类,直接 src 引入 放在 utils 工具类里面

    verifys_php验证码类_源码

    验证码在Web开发中扮演着...总之,"verifys_php验证码类_源码"是一个实用的工具,它帮助开发者快速搭建适应项目需求的验证码系统。通过深入理解和自定义这个类,你可以创建出既安全又符合用户体验的验证码解决方案。

    Java生成图片验证码工具类源码

    该工具类使用随机字符生成验证码,并支持自定义验证码长度和字体样式。生成的验证码图片背景透明,线条清晰,可轻松辨认。本源码包含了工具类源码及调用示例,可供开发者参考使用,集成到您的项目中。

    SmsUtil.zip_SMS工具类_java中SMSutil_短信平台_阿里大于发送短信工具类_阿里短信

    "SmsUtil.zip" 是一个包含阿里大于短信服务API的Java工具类,可以帮助开发者快速集成短信发送功能。下面,我们将深入探讨这个工具类以及相关知识点。 1. **阿里大于短信平台** 阿里大于(现更名为阿里云通信)是...

    验证码工具类.zip

    本资源提供了两种实现方式:基于Servlet和Struts2(Action)的验证码工具类。以下是对这两个版本的验证码工具类的详细解释。 ### Servlet版验证码工具类 1. **验证码生成**: Servlet版本的验证码工具类通常会...

    301751181226203_matlab基础_验证码_

    MATLAB作为一种强大的数学计算和数据分析工具,也可以用于处理图像识别任务,包括验证码的解析。 首先,我们需要了解MATLAB中的图像处理基础。MATLAB提供了`imread`函数来读取图像,例如这里的`s1.bmp`到`s9.bmp`...

    图片验证码工具类

    图片验证码生成工具类

Global site tag (gtag.js) - Google Analytics