博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
以前积攒的一个用Java程序生成验证码的代码
阅读量:5858 次
发布时间:2019-06-19

本文共 2815 字,大约阅读时间需要 9 分钟。

一个Java类:

package com.abc.ufo.util;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.OutputStream;import java.util.Random;import javax.imageio.ImageIO;public class ImageMaker{    private char map[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9'};    public String getImage(int width,int height,OutputStream os){        BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);                Graphics g=image.getGraphics();        g.setColor(new Color(0xDCDCDC));        g.fillRect(0, 0, width, height);                                StringBuilder sb=new StringBuilder();        for(int i=0;i<4;i++){            sb.append(map[(int)(map.length*Math.random())]);        }        String text=sb.toString();                g.setColor(Color.black);        g.setFont(new Font("Arial",Font.PLAIN,36));                g.setColor(Color.red);        String str=text.substring(0,1);        g.drawString(str, 18, 32);                g.setColor(Color.blue);        str=text.substring(1,2);        g.drawString(str, 60, 32);                g.setColor(Color.red);        str=text.substring(2,3);        g.drawString(str, 95, 32);                g.setColor(Color.blue);        str=text.substring(3,4);        g.drawString(str, 125, 32);                g.setColor(Color.gray);        Random rand=new Random();        for(int i=0;i<20;i++){            int x=rand.nextInt(width);            int y=rand.nextInt(height);            g.drawOval(x, y, width, height);        }                g.setColor(Color.black);        g.drawRect(0, 0, width-1, height-1);        //g.drawLine(width-2, 0, width-2, height);                g.dispose();                try{            ImageIO.write(image, "JPEG", os);        }catch(Exception e){            //e.printStackTrace();        }                return text;    }}

JSP:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page contentType="image/jpeg" %>
<% String str=image.getImage(160,40,response.getOutputStream()); session.setAttribute("verifyCode",str); out.clear(); out = pageContext.pushBody(); %>

页面使用:

Login

No Zero in the verification code

+

页面效果:

 

转载地址:http://qwljx.baihongyu.com/

你可能感兴趣的文章
Mycat安装以及使用测试
查看>>
JS里验证信息
查看>>
Microsoft Quantum Katas帮助开发人员探索使用Q#实现量子计算
查看>>
Akka actor tell, ask 函数的实现
查看>>
windows10 chrome 调试 ios safari 方法
查看>>
Hello , Ruby!
查看>>
Netty 4.1.35.Final 发布,经典开源 Java 网络服务框架
查看>>
详解Microsoft.AspNetCore.CookiePolicy
查看>>
go与c互相调用
查看>>
如何优雅地用Redis实现分布式锁
查看>>
从零开始Docker化你的Node.js应用
查看>>
SCDPM2012 R2实战一:基于SQL 2008 R2集群的SCDPM2012 R2的安装
查看>>
SQL SERVER中字段类型与C#数据类型的对应关系
查看>>
保存对象、关系映射
查看>>
Java堆和栈的区别
查看>>
Linux lsof命令详解
查看>>
SVG path
查看>>
js判断checkbox是否选中
查看>>
【转】TabError:inconsistent use of tabs and spaces
查看>>
链路层
查看>>