当前位置: 代码迷 >> J2EE >> 登录验证码,该怎么解决
  详细解决方案

登录验证码,该怎么解决

热度:45   发布时间:2016-04-22 02:15:15.0
登录验证码
谁有登录验证码的源码啊?跪求啊!!!!!

------解决方案--------------------
Java code
import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;public class Indentify extends HttpServlet {    /**     *      */    private static final long serialVersionUID = -5192810637835083466L;    private static final char[] chars = { '0', '1', '2', '3', '4', '5', '6',            '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g',            'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',            'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'G',            'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',            'X', 'Y', 'Z' };    public static String getString() {        StringBuffer sb = new StringBuffer();        for (int i = 0; i < 4; i++) {            sb.append(chars[(int) (Math.random() * 62)]);        }        return new String(sb);    }    public static Color getColor() {        return new Color((int)(Math.random() * 256) , (int)(Math.random() * 256) ,                (int)(Math.random() * 256));    }    public static Color getReverseColor(Color c) {        return new Color(255 - c.getRed(), 255 - c.getGreen(), 255 - c                .getBlue());    }        public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        this.doPost(request, response);    }        public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        response.setContentType("image/jpeg");        String str = getString();        request.getSession(true).setAttribute("vertificationcode", str);        int width = 70;        int height = 30;        Color color = getColor();        Color reverseColor = getReverseColor(color);        BufferedImage image = new BufferedImage(width, height,                BufferedImage.TYPE_INT_RGB);        Graphics2D g = image.createGraphics();        g.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 16));        g.setColor(color);        g.fillRect(0, 0, width, height);        g.setColor(reverseColor);        g.drawString(str, 18, 20);        for (int i = 0, n = (int) Math.random() * 100; i < n; i++) {            g.drawRect((int) Math.random() * width, (int) Math.random()                    * height, 1, 1);        }        ServletOutputStream outputStream = response.getOutputStream();        JPEGImageEncoder encode = JPEGCodec.createJPEGEncoder(outputStream);        encode.encode(image);        outputStream.flush();    }}
  相关解决方案