驗證碼Java實現(xiàn)

驗證碼Java實現(xiàn)

[圖片上傳失敗...(image-50451b-1539494521700)]

1、Servlet實現(xiàn)驗證碼

實現(xiàn)步驟:

  • 1、服務(wù)端隨機(jī)生成驗證碼:利用java.awt中的相關(guān)類,譬如Graphics (核心),BufferedImage
  • 2、利用Servlet進(jìn)行ClientServer的交互,進(jìn)行驗證碼的獲取,以及表單的客戶端驗證碼輸入和服務(wù)端存儲的記錄進(jìn)行驗證。

核心代碼:(驗證碼的生成)

public class ImageServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        //初始化圖片類型
        BufferedImage bufferedImage = new BufferedImage(68, 22, BufferedImage.TYPE_INT_RGB);
        //進(jìn)行制圖
        Graphics graphics = bufferedImage.getGraphics();
        //RGB設(shè)置顏色并填充對應(yīng)圖像坐標(biāo)像素點
        Color color = new Color(200, 150, 255);
        graphics.setColor(color);
        graphics.fillRect(0, 0, 68, 22);
        char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
        Random random = new Random();
        int length = chars.length, index;

        //循環(huán)隨機(jī)生成驗證碼
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < 4; i++) {
            index = random.nextInt(length);
            //設(shè)置驗證碼的不同顏色并記錄驗證碼
            graphics.setColor(
                    new Color(random.nextInt(88), random.nextInt(188), random.nextInt(255)));
            graphics.drawString(chars[index] + "", (i * 15) + 3, 18);
            stringBuffer.append(chars[index]);
        }
        //將驗證碼的記錄值存儲在session中
        req.getSession().setAttribute("picCode", stringBuffer.toString());
        //將生成的圖片寫入Response的輸出流中
        ImageIO.write(bufferedImage, "JPG", resp.getOutputStream());
    }
}

2、插件實現(xiàn)驗證碼:

  • 常見驗證碼組件 JcaptchaKaptcha

敬請期待 :)

3、Java圖片驗證碼

敬請期待 :)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,810評論 11 349
  • Java實現(xiàn)驗證碼制作 第一章 概述 1.1 驗證碼概述 為什么要使用驗證碼什么是驗證碼使用Servlet實現(xiàn)驗證...
    qezhhnjy閱讀 2,128評論 0 6
  • 我喜歡與人分享我一天的行程,不是那種表格式的,而是我去做一件事或者剛做完一件事就迫不及待的想要告訴別人,我覺得這樣...
    必雨軒閱讀 335評論 0 0
  • 今天中午看了韓劇《犯罪心理》的最新一集,只是剛剛演到一個殺人案件警察剛開始摸不到頭緒的調(diào)查。 這個案件是一個男人將...
    火之童閱讀 779評論 5 2

友情鏈接更多精彩內(nèi)容