Java生成驗證碼(一)

1、爲何要使用驗證碼
    咱們要經過驗證碼,由用戶肉眼識別其中的驗證碼信息,從而區分用戶是人仍是計算機。
  
2、什麼是驗證碼
    驗證碼:是一種區分用戶是計算機仍是人的公共全自動程序。
    做用:能夠防止惡意破解密碼、刷票、論壇灌水,有效防止某個黑客對某一特定註冊用戶用特定程序暴力破解方式進行不斷的登陸嘗試
    實際上用驗證碼是如今不少網站通行的方式,咱們利用比較簡易的方式實現了這個功能。
 
 
使用servlet實現驗證碼
    生成圖片用到的類:
        1.BufferedImage圖像數據緩存區
        2.Graphics繪製圖片
        3.Color獲取顏色
        4.Random生成隨機數
        5.ImageIO輸出圖片
 
    生成圖片的實現類:
        1.定義BufferedImage對象
1 BufferedImage bi = new BufferedImage(68,22,BufferedImage.TYPE_INT_RGB);
       
     2.獲取Graphics對象
1 Graphics g = bi.getGraphics();
2 Color c = new Color(200,150,255);
3 g.setColor(c);
4 g.fillRect(0,0,68,22);
       
    3.經過Random產生隨機驗證碼信息
    4.使用Graphics繪製圖片     
 1 Char[] ch = "ABCDEFGHIJKLMNOPRSTUVWXYZ0123456789".toCharArray();
 2 Random r = new Random();
 3 int len = ch.length, index;
 4 StringBuffer sb = new StringBuffer();
 5 for(int i=0; i<4 ; i++){
 6     index = r.nextInt(len);
 7     g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255)));
 8     g.drawString(ch[index]+"", (i*15)+3, 18);
 9     sb.append(ch[index]);
10 }
 
        5.記錄驗證碼信息到session中
1 request.getSession().setAttribute("captcha",sb.toString());
 
        6.使用ImageIO輸出圖片
1 ImageIO.write(bi, "JPG",  response.getOutputStream());

 

-----------------------------------------------------------------------------------------------緩存

下一篇博客會簡單介紹如何使用一些開源組件來實現驗證碼
相關文章
相關標籤/搜索