知识大全 支持中文的验证码生成程序.

Posted 阿拉伯数字

篇首语:不读书的人,思想就会停止。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 支持中文的验证码生成程序.相关的知识,希望对你有一定的参考价值。

  一个验证图形生成程序 支持中文的验证码生成程序 写的时候没有仔细看 可能有小问题 但是运行没有任何问题

  使用方法 :    <tr><td>&nbsp;验 证 码:&nbsp;</td>    <td><input tabindex= maxlength= size= name=yzmimg usage= int tip= 验证码请输入阿拉伯数字! title= 输入阿拉伯数字 />&nbsp;</td>    <td><a javascript:refreshImg( validateCodeImg ); ><img src= yzmImg jsp alt= 请在左侧输入对应的阿拉伯数字 name= validateCodeImg border= align= absmiddle id= validateCodeImg /></a>    输入对应阿拉伯数字.看不清点请点击更换</td></tr>

  <script language= javascript type= text/javascript >     function refreshImg(imgID) var img = document getElementById(imgID);  img src = img src;    </script>    生成图形的jsp文件:

  <%@page session= true

  contentType= image/jpeg; charset=gb

  import= java awt image * java awt *

  import= java util *

  import= javax servlet *

  import= javax servlet *

  import= javax imageio *

  import= java io OutputStream

  import= java io OutputStream

  %><%!

  private int iCharHeight = ;

  private int iCharCnt = ;

  private int iMaxOffset = ; //字符位置左右最大便宜像素

  private int iImgWidth = *iCharCnt + iMaxOffset* ; //图片宽度

  private int iImgHeight = iCharHeight + ; //图片高度

  private int iDisturbLineCnt = ; //干扰线数量

  //////////////////////////////////////////////////////

  //private String Src = 零壹贰三肆伍陆柒捌玖 ;

  private String Src = 零一二三四五六七八九 ;

  //private String Src = 的了是我不在人们有来他这上著个地到大里说就去子得也和那要下看天时过出小么起你都把好还多没为又可家学只以主会样年想生同老中十从自面前头道它后然走很像见两用她国动进成回什边作对开而己些现山民候经发工向事命给长水几义三声于高手知理眼志点心战二问但身方实吃做叫当住听革打呢真全才四已所敌之最光产情路分总条白话东席次亲如被花口放儿常气五第使写军吧文运再果怎定许快明行因别飞外树物活部门无往船望新带队先力完却站代员机更九您每风级跟笑啊孩万少直意夜比阶连车重便斗马哪化太指变社似士者干石满日决百原拿群究各六本思解立河村八难早论吗根共让相研今其书坐接应关信觉步反处记将千找争领或师结块跑谁草越字加脚紧爱等习阵怕月青半火法题建赶位唱海七女任件感准张团屋离色脸片科倒睛利世刚且由送切星导晚表够整认响雪流未场该并底深刻平伟忙提确近亮轻讲农古黑告界拉名呀土清阳照办史改历转画造嘴此治北必服雨穿内识验传业菜爬睡兴形量咱观苦体众通冲合破友度术饭公旁房极南枪读沙岁线野坚空收算至政城劳落钱特围弟胜教热展包歌类渐强数乡呼性音答哥际旧神座章帮啦受系令跳非何牛取入岸敢掉忽种装顶急林停息句区衣般报叶压慢叔背细 ;

  String[] strFontNames =

   隶书 华文新魏 黑体 幼圆 楷体_GB 新宋体 华文彩云 ;

  private int FONTSTYLE = Font BOLD | Font ITALIC;

      //////////////////////////////////////////////////////

  private String getRandomStr(Random random int cnt StringBuffer sbNum)

  String str = ;

  int max = Src length();

  for (int i = ; i < cnt; i++)

  int t = random nextInt(max);

  str += Src charAt(t);

  sbNum append(t);

  

  return str;

  

      //生成随机颜色

  Color getRandColor(Random random int fc int bc)

  if (fc > )

  fc = ;

  if (bc > )

  bc = ;

  int r = fc + random nextInt(bc fc);

  int g = fc + random nextInt(bc fc);

  int b = fc + random nextInt(bc fc);

  return new Color(r g b);

  

  %><%

  String strText = ;

  try

  Date now = new Date();

  Random random = new Random(now getTime());

  now = null;

  StringBuffer bufNum = new StringBuffer( );

  strText = getRandomStr(random iCharCnt bufNum);

  response setHeader( Cache Control no store ); //HTTP

  response setHeader( Pragma no cache ); //HTTP

  response setDateHeader( Expires ); //prevents caching at the proxy server

  BufferedImage image = new BufferedImage(iImgWidth iImgHeight BufferedImage TYPE_INT_RGB);

  Graphics g = image getGraphics();

  // 设定图像背景色(因为是做背景 所以偏淡)

  g setColor(getRandColor(random ));

  g fillRect( iImgWidth iImgHeight);

  //画边框

  g setColor(Color black);

  g drawRect( iImgWidth iImgHeight );

  //干扰线

  

  for (int k = ; k < iDisturbLineCnt; k++)

  

  g setColor(getRandColor(random ));

  g drawLine(random nextInt(iImgWidth) random nextInt(iImgHeight) random nextInt(iImgWidth) random nextInt(iImgHeight));

  

  int startx = ;

  int strWidth = ;

  for (int i = ; i < iCharCnt; i++)

  g setColor(getRandColor(random ));

  char ch = strText charAt(i);

  String fname = strFontNames[random nextInt(strFontNames length)];

  Font f = new Font(fname FONTSTYLE iCharHeight);

  System out println(fname +   + ch);

  g setFont(f);

  g drawString( + ch startx + strWidth + random nextInt(iMaxOffset) iCharHeight);

  java awt FontMetrics fm = g getFontMetrics();

  strWidth += fm charWidth(ch);

  fm = null;

  

  // 图象生效

  g dispose();

  ServletOutputStream responseOutputStream = response getOutputStream();

  // 输出图象到页面

  ImageIO write(image JPEG responseOutputStream);

  //以下关闭输入流!~~~

  responseOutputStream flush();

  responseOutputStream close();

  /**//*

  ServletOutputStream outstream = response getOutputStream();

  JPEGImageEncoder encoder = JPEGCodec createJPEGEncoder(outstream);

  encoder encode(image);

  outstream close();

  */

  // 将认证码存入SESSION

  session setAttribute( YZMIMAGE bufNum toString());

  random = null;

  bufNum = null;

  image = null;

  

cha138/Article/program/Java/hx/201311/26717

相关参考

知识大全 c#生成无重复的验证码

  最近公司项目做了代金卷的业余需要生成随机的位数字字母组合的条码现贴出种程序源码供大家学习和参考  方法  privatestaticchar[]constant=abcdefghijklmnopq

知识大全 使用kaptcha生成验证码

  kaptcha是一个简单好用的验证码生成工具通过配置可以自己定义验证码大小颜色显示的字符等等      下载kaptcha &

知识大全 PHP生成雪花背景的网站验证码

PHP生成雪花背景的网站验证码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以下为引用的内容&

知识大全 网络编程中网页中的验证码生成

  今天我们直接上代码来介绍一下关于网络编程中网页中的验证码生成的方法  <%  //nocache指示请求或响应消息不能缓存  responsesetHeader(CacheControlno

知识大全 PHP5中GD库生成图形验证码(有汉字)

PHP5中GD库生成图形验证码(有汉字)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文为大家介

12306可以使用验证码阻止那些意图通过计算机程序来自动申请更多邮箱发送垃圾短信或者刷票的人的原因是

12306可以使用验证码阻止那些意图通过计算机程序来自动申请更多邮箱发送垃圾短信或者刷票的人的原因是_____。A、验证码是一种反黑客程序B、验证码虽然容易破解,但还没有更好的方式替代它C、验证码对于

知识大全 在Asp.net(C#)中添加程序实现验证码功能

在Asp.net(C#)中添加程序实现验证码功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n

知识大全 怎样用java实现验证码

  现在许多系统的注册登录或者发布信息模块都添加的随机验证码功能就是为了避免自动注册程序或者自动发布程序的使用  验证码实际上就是随机选择一些字符以图片的形式展现在页面上如果进行提交操作的同时需要将图

知识大全 JSP验证码代码

JSP验证码代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  生成有个随机数字和杂乱背景的图片

知识大全 php 验证码(倾斜,正弦干扰线,黏贴,旋转)

  字体变型(一般通过算法进行扭曲比较有代表性就是    字体黏贴(这里面以qq验证码为代表了目前网上还是很难找到破解qq验证码的)    干扰线噪点(这种识别起来相当容易很容易被程序自动化识别)