即興的靈感

          思維是一種藝術(shù); 藝術(shù)需要靈感。

          博客好友

          最新評(píng)論

          JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼)

          ??? 在上一篇內(nèi)容中介紹了有關(guān)JSP中產(chǎn)生數(shù)字驗(yàn)證碼圖片的過(guò)程,本文將繼續(xù)介紹有關(guān)JSP中的另一種驗(yàn)證碼的實(shí)現(xiàn),即中文驗(yàn)證碼在JSP中的實(shí)現(xiàn),使用中文驗(yàn)證碼的好處是能提高驗(yàn)證的有效性,提高驗(yàn)證的安全度,因?yàn)橹形南鄬?duì)于英文或數(shù)字筆畫結(jié)構(gòu)相對(duì)比較復(fù)雜,從而增加了分析程序解析驗(yàn)證碼圖片并讀取驗(yàn)證信息的難度。在文中并分析中文驗(yàn)證的實(shí)現(xiàn)過(guò)程。
          ???二、JSP中實(shí)現(xiàn)中文驗(yàn)證碼源碼如下:

          ChineseVal.jsp

          <%@ page? pageEncoding = "gb2312" contentType="image/jpeg" import = "javax.imageio.*,java.util.*,java.awt.image.*,java.awt.*" %>

          <%!

          ??? //在此處 獲取并生成隨機(jī)顏色

          ??? Color getRandColor(Random random, int ff, int cc) {

          ?????? if (ff > 255)

          ?????????? ff = 255;

          ?????? if (cc > 255)

          ?????????? cc = 255;

          ?????? int r = ff + random.nextInt(cc - ff);

          ?????? int g = ff + random.nextInt(cc - ff);

          ?????? int b = ff + random.nextInt(cc - ff);

          ?????? return new Color(r, g, b);

          ??? } %>

          <%

          ??? //在此處 設(shè)置JSP頁(yè)面無(wú)緩存

          ??? response.setHeader( "Pragma" , "No-cache" );

          ??? response.setHeader( "Cache-Control" , "no-cache" );

          ??? response.setDateHeader( "Expires" , 0);

          ??? // 設(shè)置圖片的長(zhǎng)寬

          ??? int width = 130;
          ????int?height = 30;

          ??? //設(shè)定被隨機(jī)選取的中文字,此處中文字內(nèi)容過(guò)多,不一一列出,只是舉例說(shuō)明下。
          ??? String base = "\u9752\u534a\u706b\u6cd5\u9898\u5efa\u8d76\u4f4d\u5531\u6d77\u4e03\u5973\u4efb\u4ef6\u611f\u51c6\u97f3\u7b54\u54e5\u9645\u65e7\u795e\u5ea7\u7ae0\u538b\u6162\u53d4\u80cc\u7ec6...省略文字。。。" ;

          ??? //設(shè)置 備選隨機(jī)漢字的個(gè)數(shù)

          ??? int length = base.length();

          ??? // 創(chuàng)建緩存圖像

          ??? BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

          ??? // 獲取圖像
          ??? Graphics g = image.getGraphics();

          ??? // 創(chuàng)建隨機(jī)函數(shù)的實(shí)例

          ??? Random random = new Random();

          ??? //此處 設(shè)定圖像背景色

          ??? g.setColor(getRandColor(random, 188, 235));

          ??? g.fillRect(0, 0, width, height);

          ??? //設(shè)置隨機(jī) 備選的字體類型

          ??? String[] fontTypes = { "\u5b8b\u4f53" , "\u65b0\u5b8b\u4f53" ,

          ?????????? "\u9ed1\u4f53" , "\u6977\u4f53" , "\u96b6\u4e66" };

          ??? int fontTypesLength = fontTypes.length;

          ??? // 在圖片背景上增加噪點(diǎn),增加圖片分析難度

          ??? g.setColor(getRandColor(random, 180, 199));

          ??? g.setFont( new Font( "Times New Roman" , Font.PLAIN, 14));

          ??? for ( int i = 0; i < 4; i++) {

          ?????? g.drawString( "@*@*@*@*@*@*@*" ,

          ?????? 0, 5 * (i + 2));

          ??? }

          ??? // 取隨機(jī)產(chǎn)生的驗(yàn)證碼 (4 個(gè)漢字 )

          ??? // 保存生成的漢字字符串

          ??? String sRand = "" ;

          ??? for ( int i = 0; i < 4; i++) {

          ?????? int start = random.nextInt(length);

          ?????? String rand = base.substring(start, start + 1);

          ?????? sRand += rand;

          ?????? // 設(shè)置圖片上字體的顏色

          ?????? g.setColor(getRandColor(random, 10, 150));

          ?????? // 設(shè)置字體格式

          ?????? g.setFont( new Font(fontTypes[random.nextInt(fontTypesLength)],

          ?????? Font.BOLD, 18 + random.nextInt(6)));

          ?????? // 將此漢字畫到驗(yàn)證圖片上面

          ?????? g.drawString(rand, 24 * i + 10 + random.nextInt(8), 24);

          ??? }

          ??? // 將驗(yàn)證碼存入S ession中

          ??? session.setAttribute( "rand" , sRand);

          ??? g.dispose();

          ??? //將 圖象輸出到JSP頁(yè)面中

          ??? ImageIO.write(image, "JPEG" , response.getOutputStream());

          ??? //關(guān)閉流

          ??? out.clear();

          ??? out=pageContext.pushBody();??

          %>

          ???以上就是JSP中產(chǎn)生中文驗(yàn)證碼過(guò)程的源碼分析,由中文作為驗(yàn)證碼存在于JSP頁(yè)面中,將會(huì)存在JSP中文亂碼的現(xiàn)象,接下來(lái)文章將介紹如何調(diào)用JSP驗(yàn)證碼和使用的方法,以及如何解決JSP中文驗(yàn)證碼亂碼問(wèn)題和其他JAVA驗(yàn)證碼的實(shí)現(xiàn)。
          ???下文將介紹有關(guān)JSP中文驗(yàn)證碼的亂碼問(wèn)題解決方法以及JSP中調(diào)用以上兩種驗(yàn)證碼的方法。


          ?
          鳳凰涅槃/浴火重生/馬不停蹄/只爭(zhēng)朝夕
          ???? 隱姓埋名/低調(diào)華麗/簡(jiǎn)單生活/完美人生

          posted on 2008-11-29 01:57 poetguo 閱讀(28624) 評(píng)論(50)  編輯  收藏 所屬分類: JSPJAVA

          評(píng)論

          # re: JSP驗(yàn)證碼之中文驗(yàn)證碼(源碼) 2008-11-29 02:05 即興詩(shī)人

          以上JSP驗(yàn)證碼代碼中的中文字由于比較多因此做了省略,如果有需要這添加上去就可以了,或者留下您的郵箱我將完整代碼CC一份過(guò)去哈。  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2008-11-29 02:18 即興詩(shī)人

          中文驗(yàn)證碼還用的不多,但是還是很有意思的。。。。特別是在中國(guó)風(fēng)的網(wǎng)站跟論壇上面哈。。。。  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2008-11-29 12:06 逝水fox

          多謝博主 一直因?yàn)轵?yàn)證碼顯示中文亂碼發(fā)愁 終于找到原因了  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2008-11-29 19:26 swallow

          hanswallow@163.com
          期待博主聯(lián)系小弟,小弟一初學(xué)的愛(ài)好者,有些問(wèn)題請(qǐng)教。。。  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2008-11-29 21:27 即興詩(shī)人

          已經(jīng)將JSP中文驗(yàn)證碼發(fā)過(guò)去你email了。  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2008-12-01 10:39 fengfantasy

          小弟也是一JAVA初學(xué)者
          希望博主能聯(lián)系下
          fengfantas@126.com

          謝謝!!!
            回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼)[未登錄](méi) 2008-12-01 13:13 bill

          請(qǐng)問(wèn)能否把你的驗(yàn)證碼的例子發(fā)給我啊?是否能增加個(gè)刷新驗(yàn)證碼的功能啊?
          shoppingbill@gmail.com
          謝謝!  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2008-12-01 13:25 即興詩(shī)人

          驗(yàn)證碼刷新跟使用在下一篇文章中《JSP驗(yàn)證碼大全之驗(yàn)證碼使用與亂碼解決》中有介紹。。。。。   回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2008-12-01 13:28 即興詩(shī)人

          樓上fengfantasy 的郵箱是否少了一個(gè)“y”哦???fengfantas@126.com
          還是故意的??哈  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2008-12-04 10:27 wangrui

          能否發(fā)下這個(gè)的原碼給我

          wangrui956@163.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2008-12-04 16:33 即興詩(shī)人

          @wangrui
          已經(jīng)發(fā)送到你郵箱了。。。  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-01-18 11:03 sss

          xx  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-01-18 11:05 MaxP

          即興詩(shī)人
          太牛了,非常感謝LZ分享,好好學(xué)習(xí),高手

          能不能把這個(gè)中文源碼和JSP驗(yàn)證碼Servlet實(shí)現(xiàn)的代碼也給我一份呀,謝謝LZ了
          webpcdodo@163.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-02-18 20:30 fengfantasy

          2008-12-01 13:28 by 即興詩(shī)人
          樓上fengfantasy 的郵箱是否少了一個(gè)“y”哦???fengfantas@126.com
          還是故意的??哈


          呵呵

          的確 漏了

          并非故意。。。  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-03-04 11:00 wonflay

          不錯(cuò) 給我發(fā)一份 wonflay@163.com 謝謝了  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼)[未登錄](méi) 2009-03-09 11:54 ws

          希望樓主也可以發(fā)我一份,包括上個(gè)驗(yàn)證碼的調(diào)用和這個(gè)的調(diào)用 代碼,謝謝了啊 ,shuaiwang1234@163.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-03-09 12:22 即興詩(shī)人

          有關(guān)驗(yàn)證碼的調(diào)用方法在《調(diào)用JSP驗(yàn)證碼和使用的方法》中介紹。。。。   回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-05-16 19:24 剩飯團(tuán)

          希望可以發(fā)一份給我:
          zerodyc@yahoo.com.cn 謝謝~~  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-05-21 14:30 江哥

          樓主也給我發(fā)一份吧 sendtozhoujiang@yeah.net  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-07-04 11:41 hl

          中文驗(yàn)證碼產(chǎn)生符號(hào)怎么處理?比如會(huì)出來(lái)一個(gè)句號(hào)什么的 如何保證出來(lái)的全部是中文?/


          也希望樓主發(fā)一份源碼及調(diào)用 謝謝
          hl1989@tom.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-07-04 11:45 hl

          符號(hào)問(wèn)題已經(jīng)解決。。

          請(qǐng)問(wèn)如何增加中文驗(yàn)證碼中字?jǐn)?shù)的種類和控制實(shí)效時(shí)間?  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-07-13 01:21 marquee

          能否發(fā)下這個(gè)的原碼給我
          marqueevip@163.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-07-23 09:54 五力

          wangli198308@126.com
          中文驗(yàn)證碼!  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-08-03 22:56 qw

          樓主大人 給小弟也發(fā)一份唄
          萬(wàn)分感謝
          fuzhiguo12@163.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-10-17 16:58 張國(guó)寧

          zhangguoning108@163.com 樓主 發(fā)我一份。萬(wàn)分感謝!  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2009-11-09 22:01 nanking

          zxdlv@163.com請(qǐng)前輩發(fā)一份完整的給我,謝謝!  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2010-04-05 23:22 mangkata

          @即興詩(shī)人
          樓主能不能把數(shù)字、字母、漢字一起結(jié)合起來(lái)呢?這是我的郵箱:mangkata@sina.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2010-05-28 01:14 HInk

          請(qǐng)前輩發(fā)一份完整的給我(數(shù)字、字母、漢字)包含驗(yàn)證頁(yè)面,謝謝!dengli18@vip.qq.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2011-06-01 15:01 擇業(yè)玩家

          好東西啊,能把源碼發(fā)給我嗎?yangfei-yang@163.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2011-07-13 10:21 Archy

          filafs_lee@126.com
          謝了!~@即興詩(shī)人
            回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2011-10-17 12:12 祝延玲

          樓主,借鑒一下你的驗(yàn)證碼源碼!我的郵箱:zhu_yanling@sina.cn
          萬(wàn)分感謝!  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2011-10-23 21:02 來(lái)回

          我也要一份代碼 謝謝了!~@即興詩(shī)人
          郵箱是zhangdi0226@163.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼)[未登錄](méi) 2012-02-29 10:03 Spring

          求源碼,郵箱752133173@qq.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼)[未登錄](méi) 2012-05-13 12:59 米子

          用皕應(yīng)的HCaptcha吧,很專業(yè),支持所有語(yǔ)言 http://www.hinsite.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2012-05-15 20:22 yh

          博主給一個(gè)中文的驗(yàn)證碼吧 謝謝
          郵箱:992406047@qq.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2012-05-16 12:37 神舟100號(hào)

          @yh
          皕應(yīng)支持中文驗(yàn)證碼 你可以試試 http:/www.hinsite.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2012-06-09 17:48 安林

          @qw
          也幫我發(fā)一fan,拜托
            回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼)[未登錄](méi) 2012-08-17 09:55 將軍

          博主 求源碼 362440326@qq.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2012-09-16 20:47 冷戰(zhàn)


          @神舟100號(hào) 謝謝推薦,皕應(yīng)的HCaptcha確實(shí)專業(yè),我們搞的投票用了后 問(wèn)題怎解決了,謝謝  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2012-10-18 16:39 邂逅

          求源碼,644143964@qq.com謝謝  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2013-04-26 10:16 牛B轟轟

          我也想要 535217937@qq.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2013-12-20 11:47 大陳小愛(ài)

          能把完整的代碼發(fā)個(gè)我一份嗎?最好有刷新功能的,最近在學(xué),老師馬上要檢查了,越快越好,謝謝!1127340549@qq.com  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2014-02-08 12:21 舒翔

          大聲道  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2014-02-14 18:02 掙碼網(wǎng)

          掙碼遠(yuǎn)程代答系統(tǒng)
          1、掙碼是一個(gè)高性能,高穩(wěn)定的遠(yuǎn)程代答題,全自動(dòng)驗(yàn)證碼識(shí)別平臺(tái),為您的軟件、平臺(tái)、網(wǎng)站,提供智能化高速穩(wěn)定的代答題驗(yàn)證碼識(shí)別服務(wù)。
          2、您只需要將您的軟件整合進(jìn)掙碼端API,我們將在最短時(shí)間內(nèi)將您的題目驗(yàn)證碼圖片答案等返回給您,您無(wú)需再單獨(dú)的去實(shí)現(xiàn)復(fù)雜的驗(yàn)證碼識(shí)別方案。
          www.zhengma.com
            回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼)[未登錄](méi) 2014-05-21 19:53 阿偉

          @即興詩(shī)人
            回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)的符合法定證碼大全之中文驗(yàn)證碼(源碼) 2014-07-09 13:16 返回

          煩得很發(fā)  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2014-11-08 20:32 坤坤

          前輩,請(qǐng)您發(fā)給我一份好么,我扣扣1058311897  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2015-07-18 16:40 聶云楊

          玩逆戰(zhàn)  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2015-09-28 10:05 劉國(guó)慶

          密碼背后無(wú)法為哦今晚發(fā)貨  回復(fù)  更多評(píng)論   

          # re: JSP驗(yàn)證碼大全之中文驗(yàn)證碼(源碼) 2016-07-05 16:29 水中游樂(lè)

          找回我的QQ密碼  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 新昌县| 玉树县| 康保县| 中山市| 大埔县| 东辽县| 巴中市| 松阳县| 太白县| 普兰店市| 治县。| 宁强县| 阿城市| 德化县| 独山县| 青铜峡市| 浦东新区| 神农架林区| 绥阳县| 定日县| 北海市| 雷波县| 西乡县| 安乡县| 漳州市| 阿坝| 绥江县| 芜湖县| 阿巴嘎旗| 改则县| 抚远县| 正定县| 辰溪县| 阜平县| 新晃| 四子王旗| 兴宁市| 南华县| 白沙| 哈密市| 寿宁县|