日期:2014-05-20  浏览次数:20701 次

登录验证码
谁有登录验证码的源码啊?跪求啊!!!!!

------解决方案--------------------
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();

    }

}