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

Java随机生成验证码图片

阅读更多
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Random;

import javax.imageio.ImageIO;

public final class CodeImageGenerator {
    private final static int DEF_WIDTH = 60;
    private final static int DEF_HEIGHT = 20;
    
    private String code;
    private int width;
    private int height;    
    private BufferedImage image;
    
    public CodeImageGenerator() {
        this(DEF_WIDTH, DEF_HEIGHT);
    }
    
    public CodeImageGenerator(int width, int height) {
        this.width = width;
        this.height = height;
        generateCodeImage();
    }
    
    private void generateCodeImage() {        
        // create the image
        image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);       
        Graphics g = image.getGraphics();
        
        // set the background color        
        g.setColor(new Color(0xDCDCDC));    
        g.fillRect(0, 0, width, height);
        
        // draw the border
        g.setColor(Color.black);
        g.drawRect(0, 0, width - 1, height - 1);
        
        // set the font
        g.setFont(new Font("Times New Roman", Font.PLAIN, 18));

        // create a random instance to generate the codes
        Random random = new Random();
        
        // make some confusion
        for (int i = 0; i < 50; i++) { 
            int x = random.nextInt(width); 
            int y = random.nextInt(height);
            g.drawOval(x, y, 0, 0);
        }
        
        // generate a random code
        for (int i = 0; i < 4; i++) {
            String rand = String.valueOf(random.nextInt(10));
            code += rand;
            g.drawString(rand, 13*i+6, 16);
        }
        
        g.dispose();
    }
    
    public BufferedImage getImage() {
        return image;
    }
    
    public String getCode() {
        return code;
    }
    
    public static void main(String[] args) throws Exception {
        File imgFile = new File("D:\\codeImage1.jpeg");
        CodeImageGenerator cig = new CodeImageGenerator();
        ImageIO.write(cig.getImage(), "JPEG", imgFile);
    }
}
分享到:
评论

相关推荐

    java随机生成验证码图片和校验

    验证码图片的生成涉及到图形学知识,可以使用Java的`java.awt`和`javax.imageio`包。创建一个`BufferedImage`对象,设置背景色,然后在画布上绘制随机颜色的线条以增加干扰。接着,将随机生成的字符绘制到图片上,...

    java随机生成验证码

    验证码(CAPTCHA)是一种用于验证用户是否为人类的自动化测试技术。...以上就是使用Java生成验证码的基本流程和关键知识点。通过调整各种参数和细节,可以根据实际需求定制出更复杂、更难被机器识别的验证码系统。

    ValidateCodeUtils.java随机生成验证码工具类 长度为4位或者6位

    随机生成验证码工具类 长度为4位或者6位

    JAVA实现随机图片验证码简单方法

    JAVA实现随机图片验证码简单方法.rtf

    Java随机生成六位验证码

    随机验证码。 - 随机生成十组六位字符组成的验证码。 - 验证码由大小写字母、数字字符组成。

    java生成随机验证码

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

    java生成的随机验证码

    在Java中,生成随机验证码涉及到多个知识点,包括字符串处理、随机数生成、图像处理以及字体操作等。下面将详细介绍这些内容。 首先,我们要生成随机数字或字母。在Java中,可以使用`java.util.Random`类来生成...

    java随机生成图片验证码

    Java 随机生成图片验证码是一种常见的网络安全技术,主要用于防止自动化程序(如机器人)进行恶意操作,例如批量注册、刷票等。在这个过程中,我们通常会创建一个包含随机字符的字符串,然后将其显示为带有扭曲、...

    随机生成验证码源码(java)

    随机生成验证码源码(java)

    java生成图片验证码

    2. ImageServlet.java:这是一个Servlet类,它处理HTTP请求,调用`ValidateCodeImageCodeMade`类的方法生成验证码,然后将生成的图像以流的形式响应给客户端。Servlet需要配置在web.xml中,以监听特定的URL路径,当...

    java随机产生验证码

    随机生成验证码内容后,使用`g.drawString`方法将内容绘制到图像上。最后,将图像保存为JPG格式的文件,这里使用了`ImageIO.write`方法。在保存文件之前,我们检查文件是否存在,如果存在则先删除再创建,确保每次...

    随机生成验证码工具jar包

    这个“随机生成验证码工具jar包”是一个Java编写的程序库,它能够帮助开发者快速地在他们的应用中集成验证码功能。让我们深入了解一下这个jar包以及与之相关的Java和jar文件的知识。 首先,Java是一个广泛使用的...

    java生成随机图片验证码

    后台Java代码使用了VerifyCodeUtil.java文件来生成验证码图片。该文件主要实现了验证码的生成、随机字符的生成、字体和颜色的随机选择、干扰线的添加等功能。 ```java package com.paladin.qos.util; import javax...

    java 生成图片验证码

    首先,验证码的基本原理是随机生成一组字符,然后将这些字符以图像的形式展示出来,同时加入一些随机元素如线条、噪点等,以增加机器识别的难度。这个过程包括以下几个关键步骤: 1. **生成随机字符串**: - ...

    随机生成验证码java源码

    随机生成手机验证码的java源码文件,结果是在后台输出,可根据选择生成几位随机码或者随机码是否带有字母。

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

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

    java生成随机加减法的图形验证码

    首先,`IdentifyingCode.java`可能是一个类,它代表验证码对象,包含了生成验证码的核心逻辑。这个类通常会包含以下几个关键部分: 1. **生成随机数字**:为了创建加减法问题,我们需要生成两个或更多随机整数。...

    java随机生成数字 验证码

    根据给定的文件信息,我们将深入探讨如何使用Java语言生成随机数字及验证码,尤其是在网络验证、安全性增强等场景中的应用。下面将详细解析文件中提到的关键知识点,包括使用`java.security.SecureRandom`类和`java....

Global site tag (gtag.js) - Google Analytics