日期:2013-12-28  浏览次数:20788 次

为了对付暴力破解登录密码,在用户注册或者登录的时候采用输入验证码被普遍采用。生成验证码的方法有很多,这里仅介绍生成数字验证码的思路及实现方法。(以下程序语言均为VBS)
  数字验证码一般由随机数生成,也可以由时间生成,例如分别取分、秒、毫秒,但笔者认为其安全性不及前者。

1、验证码的生成程序(采用随机数方式)
  [FileName]:getverifycode.asp
  [Code]:<%
      dim getrandom
      Randomize '设置随机因子
      getrandom=mid((rnd*100000),1,4) '生成6位随机数,取高4位
      Session("verifycode")=getrandom '保存于Session中
      %>
  把该文件使用include嵌套于要显示验证码的页面上。把生成的验证码存放于Session中的作用是在提交数据后,在验证页面读取用户输入的值与该值相比较,如果吻合则证明其数据来源合法,可进行下一步操作。

2、验证码的生成程序
  随机数生成后,可通过两种方法显示,一种是直接显示,另外一种是图片显示。以下着重介绍图片显示方法。首先我们要用绘图软件制作内容分别为数字0~9的图片共10张,分别取名为1.gif、2.gif……,以此类推。制作完毕后我们就可以着手编写代码了。代码如下:
  [Code]:<img src=http://www.163design.net/a/y/"images/<%=mid(Session("verifycode"),1,1)%>.gif" width="15" height="15" alt="">
     <img src=http://www.163design.net/a/y/"images/<%=mid(Session("verifycode"),2,1)%>.gif" width="15" height="15" alt="">
     <img src=http://www.163design.net/a/y/"images/<%=mid(Session("verifycode"),3,1)%>.gif" width="15" height="15" alt="">
     <img src=http://www.163design.net/a/y/"images/<%=mid(Session("verifycode"),4,1)%>.gif" width="15" height="15" alt="">
  同时,我们要在表单中插入一个验证码输入框,以便用户按照显示的验证码进行输入。

3、验证码的验证
  用户输入了验证码及其它必须信息,提交之后,就要在接收数据页面进行相应的验证处理。过程比较简单,只要把用户输入的验证码与存放于Session中的相比较就可以了。代码如下:
  [Code]:dim usercode
      usercode=Request.Form("verifycode")
      if usercode<>Session("verifycode") then
       Response.Redirect("验证码不正确提示页面")
       Response.End
      else
       (处理其他数据)
      end if

  至此,一个简单的验证码编写过程就完成了。本文有错误及不足之处,敬请指正。