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)。

主站蜘蛛池模板: 露脸真实国语乱在线观看| 亚洲中文在线看视频一区| 欧美亚洲国产一区| 国产精品流白浆在线观看| 日韩乱码免费一区二区三区| 亚洲精品制服丝袜二区| 人妻丰满熟妇av五码区| 国产在线拍偷自揄观看视频网站| 国产靠逼视频| 精品久久高清| 日本免费福利视频| 99久久精品免费视频| 日韩第一页在线| 婷婷色狠狠干| 免费jizz在线播放| 亚洲高清无码久久久| 亚洲欧洲日本在线| 久久77777| 精品国产香蕉在线播出| 538国产视频| 国产香蕉国产精品偷在线观看 | 成年人视频一区二区| 午夜无码一区二区三区| 免费不卡视频| 国产亚洲精品va在线| 久久婷婷五月综合色一区二区| 亚洲AV无码乱码在线观看裸奔| a毛片免费观看| 欧美日本中文| 中文字幕无码中文字幕有码在线| 国产精品漂亮美女在线观看| 久久亚洲中文字幕精品一区| 久久精品这里只有国产中文精品 | 2021最新国产精品网站| 国产欧美视频在线| 真实国产乱子伦高清| 国产综合精品一区二区| 国产一区二区三区夜色| 91亚洲精品第一| 人妻少妇久久久久久97人妻| 免费国产在线精品一区| 91久久青青草原精品国产| 欧美另类一区| 国产一区二区色淫影院| 中文字幕乱码二三区免费| 国产精品综合色区在线观看| 国产精品网曝门免费视频| 乱人伦中文视频在线观看免费| 国产精品自在拍首页视频8| 国产精品乱偷免费视频| 日本欧美成人免费| 亚洲三级影院| 久久精品国产91久久综合麻豆自制| 在线视频97| 欧美色99| 一本一道波多野结衣av黑人在线| 国产91无毒不卡在线观看| 好久久免费视频高清| 久热中文字幕在线| 成色7777精品在线| 日韩AV无码免费一二三区| 欧美日韩国产成人高清视频| 亚洲av无码久久无遮挡| 无码一区18禁| 国产精品成人一区二区| 亚洲三级电影在线播放| 精品综合久久久久久97| 91年精品国产福利线观看久久| 特级精品毛片免费观看| 国产区在线观看视频| 91精品国产91久无码网站| 久久福利网| 国产成人高清精品免费软件| 久夜色精品国产噜噜| 国产又色又爽又黄| 国产亚洲精品自在久久不卡| 91福利免费视频| 色妞www精品视频一级下载| 在线免费观看a视频| 亚洲大尺码专区影院| 免费看的一级毛片| 欧美成人一区午夜福利在线|