本文實(shí)例講述了Java Web開發(fā)之圖形驗(yàn)證碼的生成與使用方法。分享給大家供大家參考。具體如下:
圖形驗(yàn)證碼的主要目的是為了增強(qiáng)的安全性,增加用戶通過遍歷所有可能性來破解密碼的難度。
圖形驗(yàn)證碼的使用包括如下3部分:
① 圖形驗(yàn)證碼的生成;
② 在頁(yè)面中的使用;
③ 驗(yàn)證;
1、圖形驗(yàn)證碼的生成
假設(shè)在Servlet生成圖形驗(yàn)證碼,在JavaBean或者JSP中生成的基本過程是相同的。設(shè)計(jì)如下過程:
① 設(shè)置響應(yīng)的文檔類型;
② 生成隨機(jī)碼;
③ 把隨機(jī)碼保存到session中;
④ 生成圖片;
⑤ 把隨機(jī)碼畫到內(nèi)存圖片上;
⑥ 把內(nèi)存圖片發(fā)送到客戶端;
1.1 設(shè)置響應(yīng)的文檔類型
在對(duì)用戶進(jìn)行響應(yīng)的時(shí)候,需要設(shè)置文檔類型,要生成圖片文檔類型可以設(shè)置為:image/gif。
在Servlet中的設(shè)置方式為:response.setContentType("image/gif");
如果在JSP頁(yè)面中使用則需要使用:<%@ page contentType="image/gif"%>
1.2 生成隨機(jī)碼
可以根據(jù)各種隨機(jī)數(shù)生成策略來生成,并且可以設(shè)置隨機(jī)碼有哪些字符組成以及隨機(jī)碼的長(zhǎng)度。
本文給出的隨機(jī)碼字符是所有字母和數(shù)字。使用的隨機(jī)碼生成策略使用的是Random對(duì)象提供的。參考代碼如下:
隨機(jī)碼字符列表:
- public static final char[] code = {'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',
- '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',
- '0','1','2','3','4',
- '5','6','7','8','9'};
新聞熱點(diǎn)
疑難解答
圖片精選