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

Posted 字符

篇首语:案头见蠹鱼,犹胜凡俦侣。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 怎样用java实现验证码相关的知识,希望对你有一定的参考价值。

  现在许多系统的注册 登录或者发布信息模块都添加的随机验证码功能 就是为了避免自动注册程序或者自动发布程序的使用

  验证码实际上就是随机选择一些字符以图片的形式展现在页面上 如果进行提交操作的同时需要将图片上的字符同时提交 如果提交的字符与服务器session保存的不同 则认为提交信息无效 为了避免自动程序分析解析图片 通常会在图片上随机生成一些干扰线或者将字符进行扭曲 增加自动识别验证码的难度

  在这里 我们使用java实现验证码

  <%@ page contentType= image/jpeg import= java awt * java awt image * java util * javax imageio * %>

  <%!

  Color getRandColor(int fc int bc)//给定范围获得随机颜色

  Random random = new Random();

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

  

  %>

  <%

  //设置页面不缓存

  response setHeader( Pragma No cache );

  response setHeader( Cache Control no cache );

  response setDateHeader( Expires );

  // 在内存中创建图象

  int width= height= ;

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

  // 获取图形上下文

  Graphics g = image getGraphics();

  //生成随机类

  Random random = new Random();

  // 设定背景色

  g setColor(getRandColor( ));

  g fillRect( width height);

  //设定字体

  g setFont(new Font( Times New Roman Font PLAIN ));

  // 随机产生 条干扰线 使图象中的认证码不易被其它程序探测到

  g setColor(getRandColor( ));

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

  

  int x = random nextInt(width);

  int y = random nextInt(height);

  int xl = random nextInt( );

  int yl = random nextInt( );

  g drawLine(x y x+xl y+yl);

  

  // 取随机产生的认证码( 位数字)

  String codeList = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ;

  String sRand= ;

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

  int a=random nextInt(codeList length() );

  String rand=codeList substring(a a+ );

  sRand+=rand;

  // 将认证码显示到图象中

  g setColor(new Color( +random nextInt( ) +random nextInt( ) +random nextInt( )));//调用函数出来的颜色相同 可能是因为种子太接近 所以只能直接生成

  g drawString(rand *i+ );

  

  // 将认证码存入SESSION

  session setAttribute( rand sRand);

  // 图象生效

  g dispose();

  // 输出图象到页面

  ImageIO write(image JPEG response getOutputStream());

  out clear();

  out = pageContext pushBody();

cha138/Article/program/Java/hx/201311/25536

相关参考

知识大全 asp 生成图片验证码

  下面一款代码是一个用asp生成图片验证码的程序哦关于验证代码写程序的大多都会知道哦下面来看看这款图片验证码的生成方式吧cha138/Article/program/net/201311/

知识大全 邮政储蓄手机银行手机号登入密码是手机验证码吗

邮政储蓄手机银行手机号登入密码是手机验证码吗?首先,我推荐你使用手机客户端登陆,用手机登陆下载为地址:mobile.psbc.。然后,带上你的身份证(需年满18周岁)、邮储银行卡/折,到柜台进行手机银

知识大全 JSP验证码大全之验证码使用与乱码解决

JSP验证码大全之验证码使用与乱码解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文中介绍

知识大全 用java实现输入ASCII码,打印出对应的大写字母。

用java实现输入ASCII码,打印出对应的大写字母。  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

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

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

知识大全 ASP.NET验证码技术

ASP.NET验证码技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  验证码技术是目前很多WE

知识大全 ASP.NET 做验证码

ASP.NET做验证码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  显示验证码的界面前台<

知识大全 淘宝网里那么多卖验证码的,是怎么做到的,难道有那么多个手机吗?而且验证码价格那么贵,感觉好坑阿,谁知道?

淘宝网里那么多卖验证码的,是怎么做到的,难道有那么多个手机吗?而且验证码价格那么贵,感觉好坑阿,谁知道?那些卖验证码的当然不是有那么多手机号,这些都是卡商提供的,不信你可以拨打一下号码,要不就是空号,

知识大全 验证码为什么老显示出“看不清,换张图”求大神帮助

验证码为什么老显示出“看不清,换张图”求大神帮助那是在提醒你,看不清楚的话,点它再换一张图看。验证码为什么出错求大神帮助这是关于很多的问题;可能是你长时间没有输入验证码,导致验证码失效;可能是你的电脑

知识大全 C#中生成验证码的类

C#中生成验证码的类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在很多网站中都会用到验证码的