`
xfxlch
  • 浏览: 167544 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java 生成验证码

    博客分类:
  • Java
阅读更多
项目中看到验证码的生成不是直接用的图片,而是根据自己的properties属性文件用java开发的。
我在这里做一个记录:
一个很简单的应用,就是一个jsp页面来展示一个生成的验证码的图片。
首先来看一下效果:



这个验证码的长度可以根据自己的需要设置成指定的长度。当然,那样的话,图片长高也要相应的做修改。

1.开发环境:IDE:MyEclipse 10 + jdk1.6.0_43 + tomcat-7.0.53
2.新建一个动态的web project。
3.主要涉及到了这么几个文件:
  验证码属性配置文件:imgCode.properties
  获取配置文件通用类:Config.java
  登录验证码配置:RandomConf.java
以及生成验证码的servlet类:VerifyCodeServlet.java

4.主要servlet处理类源码:VerifyCodeServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
	ServletException, IOException  {
		System.setProperty("java.awt.headless", "true");
        BufferedImage buffImg = new BufferedImage(RandomConf.getWidth(), RandomConf.getHeight(), BufferedImage.TYPE_INT_RGB);
        Graphics2D g = buffImg.createGraphics();
//        g.setColor(Color.WHITE);
        g.setColor(new Color(
        		RandomConf.getRed(),
        		RandomConf.getGreen(),
        		RandomConf.getBlue()));
        g.fillRect(0, 0, RandomConf.getWidth()-2, RandomConf.getHeight()-2);

        Font font = new Font(RandomConf.getFontType(), Font.PLAIN, RandomConf.getFontSize());
        g.setFont(font);
        g.setColor(Color.BLACK);
        g.drawRect(0, 0, RandomConf.getWidth() - 2, RandomConf.getHeight() - 2);

        g.setColor(Color.GRAY);

		Random random = new Random();

        for (int i = 0; i < RandomConf.getComplex(); i++) {
            int x1 = random.nextInt(RandomConf.getWidth()-2);
            int y1 = random.nextInt(RandomConf.getHeight()-2);

            int x2 = random.nextInt(10);
            int y2 = random.nextInt(10);

            g.drawLine(x1, y1, x1 + x2, y1 + y2);//在点(x1, y1)与点(x1 + x2, y1 + y2)之间画一条线
        }

        StringBuffer randomCode = new StringBuffer();
        int red = 0;
        int green = 0;
        int blue = 0;
        // 设置备选验证码:包括"A-Z","a-z","0-9"
        int size = RandomConf.getRandomChar().length();
        Random rand = new Random();
        for (int i = 0; i < RandomConf.getLen(); i++) {
        	int start = rand.nextInt(size);
        	String tmpStr = RandomConf.getRandomChar().substring(start, start + 1);

        	red = random.nextInt(110);
			green = random.nextInt(50);
			blue = random.nextInt(255);
			g.setColor(new Color(red,green,blue));

			randomCode.append(tmpStr);
        	g.drawString(tmpStr, 13 * i + 6 + rand.nextInt(5), 14 + rand.nextInt(6));
        }

        HttpSession session = request.getSession();
        session.setAttribute("randomImgCode", randomCode.toString());

        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        response.setContentType("image/jpeg");

        ServletOutputStream outputStream = response.getOutputStream();
        ImageIO.write(buffImg, "jpeg", outputStream);

        outputStream.close();
	}


后面附上整个项目代码,直接解压,导入myeclipse即可运行
  • 大小: 10.9 KB
分享到:
评论

相关推荐

    java生成验证码的参考资料(中英文验证码)

    总的来说,Java生成验证码是一个结合了数学随机性、图像处理和安全性考量的过程。通过学习和使用`kaptcha`或其他验证码生成库,开发者能够快速地在自己的项目中实现这一功能。同时,理解和实现验证码的生成也能加深...

    java生成验证码demo

    这个"java生成验证码demo"提供了生成自定义验证码图片的方法,包括设置图片尺寸、验证码长度,以及添加各种视觉混淆元素,以增加机器识别的难度。 首先,我们要理解验证码的基本原理。它通常由一组随机生成的字母或...

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

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

    java生成验证码源码包括彩色验证码

    java生成验证码源码包括彩色验证码 包括jsp生成验证码和彩色验证码

    java生成验证码代码

    在Java中生成验证码涉及到图像处理、随机数生成以及字符编码等多个知识点。以下将详细介绍如何在Java中创建一个能生成中文、英文和数字的验证码。 1. **随机数生成**:首先,我们需要生成随机的验证码字符。Java...

    java生成验证码代码(工程)

    java生成验证码代码 主要:一个生成验证码的servlet,一个jsp页面,另外还需要配置下web.xml即可

    java生成验证码图片的文件已完成测试

    java生成验证码图片的文件已完成测试

    Java生成验证码

    ### Java生成验证码详解 在数字化世界中,验证码作为一种防止自动化工具进行恶意操作的安全措施,扮演着至关重要的角色。本文将深入探讨如何使用Java语言生成图片验证码,包括代码实现、技术要点及其实现流程。 ##...

    用JAVA生成验证码的操作

    ### 使用Java生成验证码的深入解析 #### 知识点概览 在当今互联网时代,验证码作为网站和应用程序安全的重要组成部分,被广泛应用于用户登录、表单提交等场景中,以防止自动化工具的恶意操作。本文将详细介绍如何...

    Java生成验证码(包含gif动画验证码)

    总的来说,Java生成验证码涉及图像处理、随机数生成、文本渲染等多个技术点。通过学习和实践,开发者可以创建出既安全又用户体验良好的验证码系统。对于动态GIF验证码,了解并使用第三方库如`gif4j`能简化开发过程。

    java生成验证码

    通过提供的`ValiImgServlet.java`和`login.jsp`文件,我们可以深入理解Java生成验证码的基本流程和关键组件。 首先,`ValiImgServlet.java`是一个Servlet,它负责在服务器端生成验证码图像。在Java中,生成验证码...

    使用java生成验证码

    使用Java生成验证码的工具类,使用说明:http://blog.csdn.net/wqh8522/article/details/72791218

    JAVA生成验证码图片工具类

    用于java生成验证码图片的工具类。(源码 .java 文件)

    java生成随机验证码

    java生成随机验证码, 这是一个demo, eclipse项目,导入eclipse即可

Global site tag (gtag.js) - Google Analytics