`
tw5566
  • 浏览: 455237 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

随机生成验证码

    博客分类:
  • java
阅读更多
随机生成验证码 
login.jsp--------------------登录页面,在这里我是提供输入验证码然后提交进行验证
代码如下:


 <%   @ page contentType  =   "  text/html; charset=gb2312  "   %>  
  <  html  >  
  <  head  >  
  <  meta  http - equiv  = " Content-Type "   content  = " text/html; charset=gb2312 "   >  
  <  title  >  用户登录  </  title  >  
   <  script  language  = " javascript "   >   
    function  loadimage()    {
    document.getElementById(  "  randImage  "  ).src   =     "  image.jsp?  "   +  Math.random();
  }  
    </  script  >  
  </  head  >  
 
  <  body  >  
 
  <  table  width  = " 256 "   border  = " 0 "   cellpadding  = " 0 "   cellspacing  = " 0 "   >  
    <!--  DWLayoutTable  -->  
    <  form  action  = " validate.jsp "   method  = " post "   name  = " loginForm "   >  
    <  tr  >  
      <  td  width  = " 118 "   height  = " 22 "   valign  = " middle "   align  = " center "   ><  input  type  = " text "   name  = " rand "   size  = " 15 "   ></  td  >  
      <  td  width  = " 138 "   valign  = " middle "   align  = " center "   ><  img  alt  = " code "   name  = " randImage "   id  = " randImage "   src  = " image.jsp "   width  = " 60 "   height  = " 20 "   border  = " 1 "   align  = " absmiddle "   ></  td  >  
    </  tr  >  
    <  tr  >  
      <  td  height  = " 36 "   colspan  = " 2 "   align  = " center "   valign  = " middle "   ><  a  href  = " javascript:loadimage(); "   ><  font   class   = pt95  >  刷新  </  font  ></  a  ></  td  >  
    </  tr  >  
    <  tr  >  
      <  td  height  = " 36 "   colspan  = " 2 "   align  = " center "   valign  = " middle "   ><  input  type  = " submit "   name  = " login "   value  = " 提交 "   ></  td  >  
    </  tr  >  
    </  form  >  
  </  table  >  
  </  body  >  
  </  html  >  
 
 

image.jsp-------------------生成随即验证码图片的jsp页面
代码如下:


 <%   @ 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  >   255  ) fc  =   255  ;
  if  (bc  >   255  ) bc  =   255  ;
  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);
} 
  %>  
   <%   
out.clear();  //  这句针对resin服务器,如果是tomacat可以不要这句 
 response.setHeader(  "  Pragma  "  ,  "  No-cache  "  );
response.setHeader(  "  Cache-Control  "  ,  "  no-cache  "  );
response.setDateHeader(  "  Expires  "  ,   0  );

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


Graphics g   =   image.getGraphics();
Random random   =     new   Random();

g.setColor(getRandColor(  200  ,  250  ));
g.fillRect(  0  ,   0  , width, height);

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



g.setColor(getRandColor(  160  ,  200  ));
  for   (  int   i  =   0  ;i  <   155  ;i  ++  )
  {
  int   x   =   random.nextInt(width);
  int   y   =   random.nextInt(height);
  int   xl   =   random.nextInt(  12  );
  int   yl   =   random.nextInt(  12  );
g.drawLine(x,y,x  +  xl,y  +  yl);
} 
 
 
 String  sRand  =   ""  ;
  for   (  int   i  =   0  ;i  <   4  ;i  ++  )  {
 String  rand  =  String .valueOf(random.nextInt(  10  ));
sRand  +=  rand;

g.setColor(  new   Color(  20   +  random.nextInt(  110  ),  20   +  random.nextInt(  110  ),  20   +  random.nextInt(  110  )));
g.drawString(rand,  13   *  i  +   6  ,  16  );
} 
 
  //   将认证码存入SESSION 
 session.setAttribute(  "  rand  "  ,sRand);

g.dispose();

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

validate.jsp-------------用来验证输入的验证码是否正确
代码如下:

 <%   @ page contentType  =   "  text/html; charset=gb2312  "   %>  
   <%   
 String  rand   =   ( String )session.getAttribute(  "  rand  "  );
 String  input   =   request.getParameter(  "  rand  "  );
  if  (rand.equals(input))  {
out.print(  "  <script>alert('验证通过!');</script>  "  );
}    else    {
out.print(  "  <script>alert('请输入正确的验证码!');location.href='login.jsp';</script>  "  );
} 
  %>  
分享到:
评论

相关推荐

    随机生成验证码.html

    HTML实现,有随机生成的验证码+按钮+输入框

    php动态随机生成验证码类

    这个PHP动态随机生成验证码类旨在创建具有以下特点的验证码: 1. **动态生成**:验证码图片是每次请求时实时生成的,确保每次展示的验证码都是独一无二的,增加了破解的难度。 2. **纯白色填充**:背景通常采用纯...

    Python实现随机生成验证码

    本话题主要关注如何使用Python编程语言,结合PIL(Python Imaging Library)模块来实现随机生成验证码图片。PIL是Python中的图像处理库,能够创建、修改和显示图像,非常适合用于生成动态验证码。 首先,我们要导入...

    ValidateCodeUtils.java随机生成验证码工具类 长度为4位或者6位

    随机生成验证码工具类 长度为4位或者6位

    Android中两种方式随机生成验证码源代码

    在Android开发中,验证码是一种常见的安全机制,用于防止恶意机器人或自动程序进行非法操作。...在提供的`Android中两种方式随机生成验证码Demo`压缩包中,你可以找到对应的源代码实现,进一步学习和实践。

    Java随机生成验证码图片

    Java随机生成验证码图片,适用于web登录验证等。个人觉得很不错~

    随机生成验证码工具jar包

    这个“随机生成验证码工具jar包”是一个Java编写的程序库,它能够帮助开发者快速地在他们的应用中集成验证码功能。让我们深入了解一下这个jar包以及与之相关的Java和jar文件的知识。 首先,Java是一个广泛使用的...

    java随机生成验证码

    在画布上绘制随机生成的字符串,每个字符的位置和颜色都是随机的,这样可以增加识别难度。使用`Font`类创建不同样式和大小的字体,然后用`Graphics2D`的`drawString()`方法绘制。 6. **保存为图像**: 使用`...

    QT实现随机生成验证码

    在QT中实现随机生成验证码是一项常见的任务,通常用于用户登录验证、防止机器人操作等安全场景。验证码的目的是通过要求用户输入随机生成的一串字符或图像中的数字,来确保请求是由人类而非机器发起的。 验证码的...

    .net 随机生成验证码

    ### .NET随机生成验证码:深入理解与实现 在现代Web应用中,验证码是保障系统安全、防止自动化攻击的重要环节之一。本文将详细解析如何在ASP.NET中生成随机验证码,包括其设计思路、代码实现以及背后的技术原理。 ...

    易语言源码易语言随机生成验证码源码.rar

    易语言源码易语言随机生成验证码源码.rar 易语言源码易语言随机生成验证码源码.rar 易语言源码易语言随机生成验证码源码.rar 易语言源码易语言随机生成验证码源码.rar 易语言源码易语言随机生成验证码源码.rar ...

    易语言随机生成验证码

    在这个“易语言随机生成验证码”的项目中,我们主要探讨的是如何使用易语言来实现验证码的生成功能,这包括随机字符的生成、图形化显示以及刷新验证码等核心知识点。 验证码的主要目的是为了验证用户身份,防止自动...

    jQuery随机生成验证码插件代码

    在这个"jQuery随机生成验证码插件代码"中,我们主要关注的是如何利用jQuery实现一个功能完善的验证码生成功能。 首先,验证码的主要目的是为了验证用户的身份,防止自动机器人或恶意软件进行非法操作。它通常由一组...

    易语言随机生成验证码源码.zip易语言项目例子源码下载

    在本压缩包“易语言随机生成验证码源码.zip”中,包含了一个易语言项目的实例源码,主要功能是随机生成验证码。这个功能在许多网络应用中都有广泛的应用,如网站注册、登录验证等,用于防止恶意机器人自动操作。 ...

    随机生成验证码源码(java)

    随机生成验证码源码(java)

    java处理类随机生成验证码

    以上就是关于使用Java处理类随机生成验证码的主要内容。通过这些步骤,我们可以创建一个既安全又实用的验证码系统,有效地防止自动化攻击。在实际项目中,还可以根据需求进行定制和优化,例如增加字符集、调整图像...

    IOS_随机生成验证码

    以上就是iOS中随机生成验证码并在UILabel上绘制的完整过程。通过这个工具类,你可以轻松地在自己的应用中集成安全的验证码功能,提高用户账户的安全性。当然,实际项目中可能还需要考虑更多细节,如网络请求验证码...

    【JavaScript源代码】JavaScript实现随机生成验证码及校验.docx

    JavaScript实现随机生成验证码及校验  本文实例为大家分享了JavaScript实现随机生成验证码及校验的具体代码,供大家参考,具体内容如下 输入验证码(区分大小写)点击确认,进行校验。出错就弹框提示 点击 看不清...

Global site tag (gtag.js) - Google Analytics