`
zhouxiaofeihaha
  • 浏览: 21910 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java 验证码

    博客分类:
  • java
 
阅读更多

 

package com.ssh;

 

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics2D;

import java.awt.image.BufferedImage;

import java.util.Random;

 

import javax.imageio.ImageIO;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class VerifyCode extends HttpServlet {

 

/**

*/

private static final long serialVersionUID = 1L;

 

private int width = 100;

private int height = 40;

private int codeCount = 4;

private int fontHeight = 30;

private int xx = 15;

private String codeStr = "0123456789abcdefghijklmnopqrstuvwxyz";

 

public void init() throws ServletException {

// System.out.println("aaaaaaaaaaaa");

}

 

protected void service(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, java.io.IOException {

// 定义图像buffer

BufferedImage buffImg = new BufferedImage(width, height,

BufferedImage.TYPE_INT_RGB);

Graphics2D gd = buffImg.createGraphics();

 

// 将图像填充为白色

gd.setColor(Color.WHITE);

gd.fillRect(0, 0, width, height);

 

// 创建字体,字体的大小应该根据图片的高度来定。

Font font = new Font("Fixedsys", Font.PLAIN, fontHeight);

// 设置字体。

gd.setFont(font);

// 画边框。

gd.setColor(Color.blue);

gd.drawRect(0, 0, width - 1, height - 1);

 

// 随机产生160条干扰线,使图象中的认证码不易被其它程序探测到。

gd.setColor(Color.gray);

// 创建一个随机数生成器类

Random random = new Random();

for (int i = 0; i < 50; i++) {

int x = random.nextInt(width);

int y = random.nextInt(height);

int xl = random.nextInt(25);

int yl = random.nextInt(25);

gd.drawLine(x, y, x + xl, y + yl);

}

// randomCode用于保存随机产生的验证码,以便用户登录后进行验证。

StringBuffer randomCode = new StringBuffer();

int red = 0, green = 0, blue = 0;

// 随机产生codeCount数字的验证码。

for (int i = 0; i < codeCount; i++) {

// 得到随机产生的验证码数字。

 

String strRand = getRand();

// 产生随机的颜色分量来构造颜色值,这样输出的每位数字的颜色值都将不同。

red = random.nextInt(255);

green = random.nextInt(255);

blue = random.nextInt(255);

 

// 用随机产生的颜色将验证码绘制到图像中。

gd.setColor(new Color(red, green, blue));

gd.drawString(strRand, (i + 1) * xx, 30);

 

// 将产生的四个随机数组合在一起。

randomCode.append(strRand);

}

// 将四位数字的验证码保存到Session中。

req.getSession().setAttribute("validateCode", randomCode.toString());

// 禁止图像缓存。

resp.setHeader("Pragma", "no-cache");

resp.setHeader("Cache-Control", "no-cache");

resp.setDateHeader("Expires", 0);

resp.setContentType("image/jpeg");

// 将图像输出到Servlet输出流中。

ServletOutputStream sos = resp.getOutputStream();

ImageIO.write(buffImg, "jpeg", sos);

sos.close();

}

 

private String getRand() {

char[] codec = codeStr.toCharArray();

int codeIndex = (int) (codeStr.length() * Math.random());

char s = codec[codeIndex];

return String.valueOf(s);

}

}


 

0
3
分享到:
评论
3 楼 onlyonce 2012-10-25  
可以用英文甚至中文都可以,不过,就是很多人觉得用数字很方便就是了。
2 楼 xzliulin 2012-10-24  
   就是
1 楼 leavesforeye 2012-10-24  
还是数字。数字的验证码满世界都是

相关推荐

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

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

    Java验证码实现源码

    要实现一个简单的Java验证码,我们需要以下步骤: 1. **生成随机字符串**:首先,我们需要生成一个随机的字符串,这可以通过Java的`Random`类和`StringBuilder`类配合实现。可以设置字符串的长度和包含的字符集(如...

    java验证码的源码

    Java验证码是一种常用的安全机制,用于防止自动化的机器人或者恶意脚本对网站进行非法操作,比如批量注册、恶意登录等。验证码通常由随机生成的一串字符或数字组成,用户需要正确输入才能完成相应的操作。在Java中...

    java验证码识别

    Java验证码识别技术主要涉及到图像处理和光学字符识别(OCR)两个关键领域,是自动化系统中用于防止机器人自动操作的一种安全机制。在这个Java项目中,我们看到的文件名可能与训练模型、输入图像和识别结果有关。...

    Java验证码框架.

    Java验证码框架.可实现多种验证很强大

    java 验证码识别源程序

    这个Java验证码识别源程序针对的是Windows操作系统,并且据描述声称其识别准确率超过90%,这意味着它具有较高的实用价值。接下来,我们将深入探讨验证码识别的基本原理、相关技术以及如何在Java中实现。 验证码...

    纯Java验证码工具类

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

    java 验证码失效异常类

    java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码...

    java验证码

    Java验证码是一种常用的安全机制,主要用于防止自动化的机器人或者恶意脚本进行非法操作,例如注册、登录、提交表单等。在Web开发中,Java验证码的实现通常涉及到图像生成、随机字符生成、以及客户端与服务器之间的...

    JAVA验证码原理及实现

    本文将深入探讨JAVA验证码的原理及其实现方法。 验证码的生成主要分为以下几个步骤: 1. **随机字符串生成**:首先,我们需要生成一组随机的字符串。这通常由字母、数字或特殊字符组成,长度可以在4到6个字符之间...

    java验证码组件Jcaptcha

    Java验证码组件Jcaptcha是用于生成安全、动态的图像验证码的工具,主要目的是为了防止自动化的机器人或恶意软件在Web应用程序中进行非法操作,如批量注册、登录等。它通过生成随机字符组合并扭曲图像背景来增加人眼...

    Java验证码

    Java验证码是一种广泛应用于Web开发中的安全机制,主要目的是防止恶意自动化程序(如机器人或爬虫)对网站进行非法操作,例如频繁提交表单、刷票等。在Java中实现验证码通常涉及图像处理、随机数生成以及哈希算法等...

    Java验证码的实现

    总的来说,Java验证码的实现涉及到Java图形处理、Web编程以及安全策略等多个方面的知识,是Java Web开发中一个实用且重要的技能。通过实践,你可以更好地理解和掌握这些技术,并能根据实际需求进行扩展和优化。

    java验证码生成类

    这篇博客文章“java验证码生成类”提供了一个简单的示例,下面我们将深入探讨验证码生成的相关知识点。 首先,验证码的基本原理是生成一段随机的、难以由机器识别的文字或数字序列,然后要求用户在限定时间内输入这...

    比较常见的Java验证码(解压导入MyEclipse即可)

    通过深入研究这个示例,你不仅可以掌握Java验证码的生成,还能了解到图形处理、会话管理等相关知识,对于提升自己的Java Web开发技能大有裨益。同时,这也是一个很好的实践项目,可以帮助你理解理论知识在实际应用中...

    java验证码识别源码

    在本Java验证码识别源码中,我们将会探讨如何利用编程技术来识别和解析这些图形验证码。 首先,验证码识别通常涉及图像处理和机器学习两大部分。图像处理用于预处理图片,提取特征;机器学习则用于训练模型,识别...

    java验证码及刷新

    总的来说,"java验证码及刷新"项目是一个基础但实用的Web开发实践,它展示了如何利用Java技术来实现验证码的生成与刷新功能,对于理解和掌握Java Web开发有很好的学习价值。通过这样的实践,开发者可以更好地理解JSP...

    70.java验证码生成.zip

    70.java验证码生成.zip70.java验证码生成.zip70.java验证码生成.zip70.java验证码生成.zip70.java验证码生成.zip70.java验证码生成.zip70.java验证码生成.zip70.java验证码生成.zip70.java验证码生成.zip70.java...

    Java验证码生成库 JCaptcha

    Java验证码生成库 JCaptcha

Global site tag (gtag.js) - Google Analytics