即兴的灵感

思维是一种艺术; 艺术需要灵感。

博客好友

最新评论

JSP验证码大全之中文验证码(源码)

    在上一篇内容中介绍了有关JSP中产生数字验证码图片的过程,本文将继续介绍有关JSP中的另一种验证码的实现,即中文验证码在JSP中的实现,使用中文验证码的好处是能提高验证的有效性,提高验证的安全度,因为中文相对于英文或数字笔画结构相对比较复杂,从而增加了分析程序解析验证码图片并读取验证信息的难度。在文中并分析中文验证的实现过程。
   二、JSP中实现中文验证码源码如下:

ChineseVal.jsp

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

<%!

    //在此处 获取并生成随机颜色

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

    } %>

<%

    //在此处 设置JSP页面无缓存

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

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

    response.setDateHeader( "Expires" , 0);

    // 设置图片的长宽

    int width = 130;
    int height = 30;

    //设定被随机选取的中文字,此处中文字内容过多,不一一列出,只是举例说明下。
    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...省略文字。。。" ;

    //设置 备选随机汉字的个数

    int length = base.length();

    // 创建缓存图像

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

    // 获取图像
    Graphics g = image.getGraphics();

    // 创建随机函数的实例

    Random random = new Random();

    //此处 设定图像背景色

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

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

    //设置随机 备选的字体类型

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

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

    int fontTypesLength = fontTypes.length;

    // 在图片背景上增加噪点,增加图片分析难度

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

    }

    // 取随机产生的验证码 (4 个汉字 )

    // 保存生成的汉字字符串

    String sRand = "" ;

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

       int start = random.nextInt(length);

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

       sRand += rand;

       // 设置图片上字体的颜色

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

       // 设置字体格式

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

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

       // 将此汉字画到验证图片上面

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

    }

    // 将验证码存入S ession中

    session.setAttribute( "rand" , sRand);

    g.dispose();

    //将 图象输出到JSP页面中

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

    //关闭流

    out.clear();

    out=pageContext.pushBody();  

%>

   以上就是JSP中产生中文验证码过程的源码分析,由中文作为验证码存在于JSP页面中,将会存在JSP中文乱码的现象,接下来文章将介绍如何调用JSP验证码和使用的方法,以及如何解决JSP中文验证码乱码问题和其他JAVA验证码的实现。
   下文将介绍有关JSP中文验证码的乱码问题解决方法以及JSP中调用以上两种验证码的方法。


 
凤凰涅槃/浴火重生/马不停蹄/只争朝夕
     隐姓埋名/低调华丽/简单生活/完美人生

posted on 2008-11-29 01:57 poetguo 阅读(28254) 评论(50)  编辑  收藏 所属分类: JSPJAVA

评论

# re: JSP验证码之中文验证码(源码) 2008-11-29 02:05 即兴诗人

以上JSP验证码代码中的中文字由于比较多因此做了省略,如果有需要这添加上去就可以了,或者留下您的邮箱我将完整代码CC一份过去哈。  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2008-11-29 02:18 即兴诗人

中文验证码还用的不多,但是还是很有意思的。。。。特别是在中国风的网站跟论坛上面哈。。。。  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2008-11-29 12:06 逝水fox

多谢博主 一直因为验证码显示中文乱码发愁 终于找到原因了  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2008-11-29 19:26 swallow

hanswallow@163.com
期待博主联系小弟,小弟一初学的爱好者,有些问题请教。。。  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2008-11-29 21:27 即兴诗人

已经将JSP中文验证码发过去你email了。  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2008-12-01 10:39 fengfantasy

小弟也是一JAVA初学者
希望博主能联系下
fengfantas@126.com

谢谢!!!
  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码)[未登录] 2008-12-01 13:13 bill

请问能否把你的验证码的例子发给我啊?是否能增加个刷新验证码的功能啊?
shoppingbill@gmail.com
谢谢!  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2008-12-01 13:25 即兴诗人

验证码刷新跟使用在下一篇文章中《JSP验证码大全之验证码使用与乱码解决》中有介绍。。。。。   回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2008-12-01 13:28 即兴诗人

楼上fengfantasy 的邮箱是否少了一个“y”哦???fengfantas@126.com
还是故意的??哈  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2008-12-04 10:27 wangrui

能否发下这个的原码给我

wangrui956@163.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2008-12-04 16:33 即兴诗人

@wangrui
已经发送到你邮箱了。。。  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-01-18 11:03 sss

xx  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-01-18 11:05 MaxP

即兴诗人
太牛了,非常感谢LZ分享,好好学习,高手

能不能把这个中文源码和JSP验证码Servlet实现的代码也给我一份呀,谢谢LZ了
webpcdodo@163.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-02-18 20:30 fengfantasy

2008-12-01 13:28 by 即兴诗人
楼上fengfantasy 的邮箱是否少了一个“y”哦???fengfantas@126.com
还是故意的??哈


呵呵

的确 漏了

并非故意。。。  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-03-04 11:00 wonflay

不错 给我发一份 wonflay@163.com 谢谢了  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码)[未登录] 2009-03-09 11:54 ws

希望楼主也可以发我一份,包括上个验证码的调用和这个的调用 代码,谢谢了啊 ,shuaiwang1234@163.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-03-09 12:22 即兴诗人

有关验证码的调用方法在《调用JSP验证码和使用的方法》中介绍。。。。   回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-05-16 19:24 剩饭团

希望可以发一份给我:
zerodyc@yahoo.com.cn 谢谢~~  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-05-21 14:30 江哥

楼主也给我发一份吧 sendtozhoujiang@yeah.net  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-07-04 11:41 hl

中文验证码产生符号怎么处理?比如会出来一个句号什么的 如何保证出来的全部是中文?/


也希望楼主发一份源码及调用 谢谢
hl1989@tom.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-07-04 11:45 hl

符号问题已经解决。。

请问如何增加中文验证码中字数的种类和控制实效时间?  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-07-13 01:21 marquee

能否发下这个的原码给我
marqueevip@163.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-07-23 09:54 五力

wangli198308@126.com
中文验证码!  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-08-03 22:56 qw

楼主大人 给小弟也发一份呗
万分感谢
fuzhiguo12@163.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-10-17 16:58 张国宁

zhangguoning108@163.com 楼主 发我一份。万分感谢!  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2009-11-09 22:01 nanking

zxdlv@163.com请前辈发一份完整的给我,谢谢!  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2010-04-05 23:22 mangkata

@即兴诗人
楼主能不能把数字、字母、汉字一起结合起来呢?这是我的邮箱:mangkata@sina.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2010-05-28 01:14 HInk

请前辈发一份完整的给我(数字、字母、汉字)包含验证页面,谢谢!dengli18@vip.qq.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2011-06-01 15:01 择业玩家

好东西啊,能把源码发给我吗?yangfei-yang@163.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2011-07-13 10:21 Archy

filafs_lee@126.com
谢了!~@即兴诗人
  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2011-10-17 12:12 祝延玲

楼主,借鉴一下你的验证码源码!我的邮箱:zhu_yanling@sina.cn
万分感谢!  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2011-10-23 21:02 来回

我也要一份代码 谢谢了!~@即兴诗人
邮箱是zhangdi0226@163.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码)[未登录] 2012-02-29 10:03 Spring

求源码,邮箱752133173@qq.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码)[未登录] 2012-05-13 12:59 米子

用皕应的HCaptcha吧,很专业,支持所有语言 http://www.hinsite.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2012-05-15 20:22 yh

博主给一个中文的验证码吧 谢谢
邮箱:992406047@qq.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2012-05-16 12:37 神舟100号

@yh
皕应支持中文验证码 你可以试试 http:/www.hinsite.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2012-06-09 17:48 安林

@qw
也帮我发一fan,拜托
  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码)[未登录] 2012-08-17 09:55 将军

博主 求源码 362440326@qq.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2012-09-16 20:47 冷战


@神舟100号 谢谢推荐,皕应的HCaptcha确实专业,我们搞的投票用了后 问题怎解决了,谢谢  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2012-10-18 16:39 邂逅

求源码,644143964@qq.com谢谢  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2013-04-26 10:16 牛B轰轰

我也想要 535217937@qq.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2013-12-20 11:47 大陈小爱

能把完整的代码发个我一份吗?最好有刷新功能的,最近在学,老师马上要检查了,越快越好,谢谢!1127340549@qq.com  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2014-02-08 12:21 舒翔

大声道  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2014-02-14 18:02 挣码网

挣码远程代答系统
1、挣码是一个高性能,高稳定的远程代答题,全自动验证码识别平台,为您的软件、平台、网站,提供智能化高速稳定的代答题验证码识别服务。
2、您只需要将您的软件整合进挣码端API,我们将在最短时间内将您的题目验证码图片答案等返回给您,您无需再单独的去实现复杂的验证码识别方案。
www.zhengma.com
  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码)[未登录] 2014-05-21 19:53 阿伟

@即兴诗人
  回复  更多评论   

# re: JSP验的符合法定证码大全之中文验证码(源码) 2014-07-09 13:16 返回

烦得很发  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2014-11-08 20:32 坤坤

前辈,请您发给我一份好么,我扣扣1058311897  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2015-07-18 16:40 聂云杨

玩逆战  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2015-09-28 10:05 刘国庆

密码背后无法为哦今晚发货  回复  更多评论   

# re: JSP验证码大全之中文验证码(源码) 2016-07-05 16:29 水中游乐

找回我的QQ密码  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: