999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java web的中文驗證碼的設計與實現

2014-01-01 00:00:00劉明明
消費電子·下半月 2014年5期

摘 要:隨著互聯網的迅速發展,隨之而來的信息安全問題也日益突出。許多網站設計者在安全性上考慮不周全,導致網站安全事故頻發,嚴重影響了網站的正常運行,帶來了巨大的經濟損失。論文探討如何設計和實現基于Java Web環境下的中文驗證碼,旨在為此安全問題提供一種解決途徑。

關鍵詞:驗證碼;隨機;安全

中圖分類號:TP311.10 文獻標識碼:A 文章編號:1674-7712 (2014) 10-0000-01

一、驗證碼

驗證碼(CAPTCHA:Completely Automated Public Turing test to tell Computers and Humans Apart)最早由卡內基梅隆大學的Luis von Ahn、Manuel Blum、Nicholas J.Hopper以及IBM的John Langford于2002年提出。它是一種區分用戶角色,確認是否是人的公共全自動程序。

(一)驗證碼的作用

使用驗證碼可以防止有人利用廣告軟件散發垃圾信息,避免密碼被黑客暴力破解,同時,也可以阻止惡意用戶對網站進行重復發帖等。驗證碼能夠有效防止黑客對某一個特定注冊用戶用特定程序暴力破解方式進行不斷的登錄嘗試,防止惡意破解密碼、刷票、論壇灌水、刷頁。

(二)隨機漢字驗證碼的工作原理

第一步,由服務器端隨機生成的驗證碼字符串。第二步,將生成的驗證碼保存在Web程序的session對象中。第三步,將session中的驗證碼字符串通過算法寫入圖片中,并發送給瀏覽器端并顯示。第四步,用戶根據自己看到的瀏覽器端顯示的圖片驗證碼,輸入相應的驗證碼,然后提交給服務器。第五步,服務器端將用戶輸入提交的字符串和服務器端保存在session對象中的驗證碼字符串進行比較,若相同,則授權繼續執行下面的代碼段,從而完成后續操作,否則就組織程序使用后繼功能。用戶每次請求時,系統都會產生不同的字符串驗證碼,使得攻擊者無法從瀏覽器端快速提取驗證碼信息,也很難用程序識別驗證碼,難以猜測其具體內容 這樣就實現了辨別用戶身份,阻擋攻擊的目標。

二、基于Java Web的中文驗證碼碼的實現

(一)實現過程

首先,通過程序隨機生成規定字符數量的一級簡碼漢字,區碼在16- 55之間,位碼在1- 93之間,接下來將此漢字區位碼生成對應的漢字,然后將生成的漢字通過算法進行扭曲,之后將文字字符寫入預先構建的圖片中添加干擾元素,之后輸出到客戶端。實現過程如圖1所示。

(二)主要程序文件

主要文件包括index.jsp、code.jsp和YanZheng.java等,它們之間的關系如圖2所示。

三、實現中文驗證碼

(一)生成漢字區位碼的核心代碼

public String getWordCode(int wordNum) {

int i = 1;

int j = 0;

Random random = new Random(System.currentTimeMillis());

int wordCodeByteNum = wordNum * 2;

int wordCodeArr[] = new int[wordCodeByteNum];

int wordHighByteScope = 55;

while (j < wordCodeByteNum) {

i = random.nextInt(wordHighByteScope);

while (true) {

if (i < 16) {

i = random.nextInt(wordHighByteScope);

} else {

break;

}

wordCodeArr[j] = i;

j += 2;

}

}

wordHighByteScope = 93;

j = 1;

while (j < wordCodeByteNum) {

i = random.nextInt(wordHighByteScope);

while (true) {

if (i < 16) {

i = random.nextInt(wordHighByteScope);

} else {

break;

}

wordCodeArr[j] = i;

j += 2;

}

}

String wordCode = new String();

for (i = 0; i < wordCodeByteNum; i++) {

wordCode += wordCodeArr[i];

}

return wordCode;

}

(二)將區位碼轉換漢字的核心代碼

public String getChineseByCode(int wordNum) {

String chineseChar = \"\";

String code = this.getWordCode(wordNum);

for (int i = 0; i < code.length(); i += 4) {

byte[] bs = new byte[2];

String lowCode = code.substring(i, i + 2) ;

int tempLow = Integer.parseInt(lowCode);

tempLow += 160;

bs[0] = (byte)tempLow;

String highCode = code.substring(i +2, i + 4);

int tempHigh = Integer.parseInt(highCode);

tempHigh += 160;

bs[1] = (byte) tempHigh;

String chars = new String(bs);

chineseChar += chars;

}

return chineseChar;

}

(三)將漢字生成圖片的核心代碼

public BufferedImage getTwistGraphics(int wordNum, int fontSize, String randChar){

int imageWidth = fontSize * wordNum + 10;

int imageHeight = fontSize + 20;

BufferedImage bi=

new BufferedImage(imageWidth+20,imageHeight, BufferedImage.TYPE_BYTE_INDEXED);

Graphics graphics = bi.createGraphics();

graphics.setColor(new Color(255, 255, 255));

graphics.fillRect(0, 0, bi.getWidth(), bi.getHeight());

graphics.setFont(new Font(\"黑體\", Font.BOLD, fontSize));

graphics.setColor(this.getRandClolr());

String randChineseChar = this.getChineseByCode(wordNum);

graphics.drawString(randChineseChar, 10, fontSize + 5);

//扭曲圖片

int w = bi.getWidth();

int h = bi.getHeight();

graphics = shearGraphics(graphics, w, h, Color.white);

//干擾點

graphics.setColor(this.getRandClolr());

for (int i = 0; i < imageWidth * imageHeight / 5; i++) {

graphics.fill3DRect(10+generator.nextInt(imageWidth), generator.nextInt(imageHeight), 1, 1, true);

}

return bi;

}

}

四、結束語

通過生成一種帶干擾元素的隨機漢字扭曲驗證碼,安裝配置到網站服務器上,通過一種識別算法,對驗證碼進行有效地識別。這樣可以進一步防止網站被惡意程序進行自動注冊、發帖等攻擊,提高網站安全性、穩定性,減少網站維護成本,為企業運行提供更有力的技術保證。

參考文獻:

[1]常祖政,盧曉倩.Java Web中隨機漢字扭曲驗證碼的實現[J].2010(10).

[2]黃賽平,許明.驗證碼的識別與改進南京師范大學學報[J].工程技術版,2009(07).

[3]李英杰,王偉.基于web的圖像驗證碼技術的研究與實現[J].安徽地震局,2013(09).

[4]陳占芳,馮欣,張偉.隨機中文漢字驗證碼的生產及其應[J].用電腦知識與技術,2007.

[作者簡介]劉明明(1990-),男,貴州遵義,西安文理學院,理學學士。

基金項目:本文系2013年西安文理學院校級大學生創新創業訓練計劃項目(項目編號:2013119)。

主站蜘蛛池模板: 亚洲国产一区在线观看| 又大又硬又爽免费视频| 就去吻亚洲精品国产欧美| 97视频在线观看免费视频| 最新无码专区超级碰碰碰| 丝袜无码一区二区三区| 久久天天躁狠狠躁夜夜2020一| 91丝袜在线观看| 成人综合久久综合| 色天天综合| 亚洲一级毛片在线播放| 巨熟乳波霸若妻中文观看免费| 成人国产免费| 风韵丰满熟妇啪啪区老熟熟女| 亚洲精品天堂自在久久77| 欧美日在线观看| 亚洲人成影院在线观看| 色欲色欲久久综合网| 欧美国产菊爆免费观看 | 91黄视频在线观看| 国产99在线| 超薄丝袜足j国产在线视频| 欧美精品在线观看视频| 亚洲美女一区| 在线高清亚洲精品二区| 91欧美在线| 国产精品永久不卡免费视频| 波多野结衣中文字幕久久| 性欧美久久| 中文字幕色站| 97国内精品久久久久不卡| 97se亚洲综合不卡| 99久久国产综合精品2020| 在线色国产| 国内熟女少妇一线天| 亚洲精品欧美日本中文字幕| 日日摸夜夜爽无码| 久久免费成人| 1769国产精品视频免费观看| 久久无码av三级| 亚洲精品无码日韩国产不卡| 亚洲国产日韩一区| 国产全黄a一级毛片| 欧美日韩免费观看| 亚洲精品卡2卡3卡4卡5卡区| 在线一级毛片| 国产性爱网站| 久久久久久国产精品mv| 日韩中文无码av超清| 一本大道香蕉久中文在线播放| 欧美亚洲国产日韩电影在线| 尤物精品视频一区二区三区 | 高清无码一本到东京热| 欧美国产精品拍自| 国产精品第| 国产91丝袜在线播放动漫 | 精品国产网| 亚洲综合经典在线一区二区| 日本一区二区三区精品AⅤ| 国产后式a一视频| 国产精品大白天新婚身材| 国产午夜人做人免费视频| 国产免费久久精品99re丫丫一| 亚洲一级毛片免费观看| 五月激情婷婷综合| 国产精品色婷婷在线观看| 高清无码手机在线观看| 欧美a在线视频| 天天激情综合| 成年免费在线观看| 国产精品播放| 久久久久国产精品熟女影院| 国产乱视频网站| 免费无遮挡AV| 欧美成人亚洲综合精品欧美激情| 呦视频在线一区二区三区| 91口爆吞精国产对白第三集| 免费观看欧美性一级| 国产精品任我爽爆在线播放6080 | 五月综合色婷婷| 免费看黄片一区二区三区| 国产成人高清亚洲一区久久|