java代码编写验证码

在Java中,可以使用Java的Graphics类来绘制验证码。以下是一个简单的示例:

import java.awt.*;
import java.awt.image.BufferedImage;
import java.util.Random;

public class CaptchaGenerator {

    public static void main(String[] args) {
        int width = 120; // 验证码图片宽度
        int height = 40; // 验证码图片高度
        String captcha = generateCaptcha(4); // 生成4位的验证码

        // 创建验证码图片
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g2d = image.createGraphics();

        // 设置背景颜色
        g2d.setColor(Color.WHITE);
        g2d.fillRect(0, 0, width, height);

        // 设置字体和字体大小
        Font font = new Font("Arial", Font.BOLD, 20);
        g2d.setFont(font);

        // 生成随机的验证码颜色
        Random random = new Random();
        Color color = new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256));
        g2d.setColor(color);

        // 绘制验证码
        g2d.drawString(captcha, 10, 25);

        // 添加干扰线
        for (int i = 0; i < 5; i++) {
            int x1 = random.nextInt(width);
            int y1 = random.nextInt(height);
            int x2 = random.nextInt(width);
            int y2 = random.nextInt(height);
            g2d.drawLine(x1, y1, x2, y2);
        }

        // 显示验证码图片
        showImage(image);
    }

    // 生成指定长度的验证码
    private static String generateCaptcha(int length) {
        String source = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        StringBuilder captcha = new StringBuilder();

        Random random = new Random();
        for (int i = 0; i < length; i++) {
            int index = random.nextInt(source.length());
            captcha.append(source.charAt(index));
        }

        return captcha.toString();
    }

    // 在窗口中显示验证码图片
    private static void showImage(BufferedImage image) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(image.getWidth(), image.getHeight());
        frame.setResizable(false);
        frame.getContentPane().add(new JLabel(new ImageIcon(image)));
        frame.setVisible(true);
    }
}

以上代码使用Java的Graphics2D类绘制一个包含4位随机字母和数字的验证码。生成的验证码图片将显示在一个窗口中。可以根据需要调整验证码图片的宽度、高度、字体、字体大小等参数。

版权申明:财旺号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 1790309299@qq.com 举报,一经查实,本站将立刻删除。

(0)
小二的头像小二

相关推荐

  • 弹窗是什么意思(弹窗指的是什么)

    弹窗是指在使用电脑或移动设备时,突然出现的一个小窗口,通常包含广告、警告信息或其他提示信息。弹窗通常会在用户使用某些软件或访问特定网站时自动弹出,或者被某些恶意软件滥用来诱导用户进行不必要的操作。 广告弹窗是最常见的类型,这些弹窗通常会在浏览器中打开,并试图向用户展示产品或服务的广告,以促进销售和营销。有些广告弹窗可能会伪装成系统警告信息,试图欺骗用户进行点…

    2023年4月17日
    00
  • ps多个画板

    在Photoshop中,可以通过创建多个画板来方便地切换不同的设计版本或页面。每个画板可以包含不同的图层和设计元素,使设计工作更加组织化和高效。 创建多个画板的步骤如下: 1. 打开Photoshop软件,并新建一个文件。2. 在菜单栏中找到”窗口”(Window)选项,点击后会看到”画板”(Artboards…

    2024年3月5日
    00
  • java创建文件并写入内容怎么写

    在Java中创建文件并写入内容可以使用`FileWriter`或者`BufferedWriter`类。以下是一个示例代码: import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public clas…

    2023年12月13日
    00
  • java语言使用关键字声明方法可能产生的异常

    在Java语言中,使用关键字声明方法可以产生以下几种异常: 1. NullPointerException(空指针异常):当调用一个对象的方法时,如果该对象为null,则会抛出NullPointerException异常。 例如: public void printLength(String str) { System.out.println(str.len…

    2023年12月2日
    00
  • excel如何排序成绩后排名次

    要在Excel中排序成绩并为其排名次,可以按照以下步骤进行操作: 1. 打开包含成绩的Excel文件,并选择包含成绩的列。2. 在Excel的菜单栏中,点击“数据”选项卡,在“排序和筛选”组中选择“小到大”或“大到小”,以确定是升序还是降序排列成绩。3. 在弹出的排序对话框中,选择要排序的列,并选择“按值”选项。4. 点击“确定”按钮,Excel将按照选择的…

    2023年11月11日
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注