asp验证码的实现

2008-02-18 23:11大家经常在网上登陆的时候经常会看到让你输入验证码,有的是文字的,有的呢是图片,比如chinaren.com校友录中留言的时候,我们就会看到数字图片验证码;网上关于数字文字验证码实现方法的相关资料很多,而我们这里介绍的是数字和字母随机组成的并且生成图片的验证码的实现方法。看起来很复杂、其实很简单的,大家跟着我往下看:

   首先,我们先介绍一下设计思路,数字和字母的随机组合生成验证码,然后将验证码生成图片,这里“数字和字母的组合”应该是随机取出来的;如果是专门的数字验证码,我们可以这样实现:

   ycodenum=4 @#验证码的位数,或者说成个数
   for i=1 to ycodenum
     Randomize @#初始化随机数发生器
     ycode=ycode&Int((9*Rnd)) @#rnd是随机数,从0到1之间的任意实数,这里获得0到9之间的整数
   next

   response.write ycode @#就可以输出数字验证码(4位)

   然而,我们要让数字和字母同样随机生成,这里我们可以用到数组来实现这种效果,如下:

   ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" @#将数字和大写字母组成一个字符串
   yc=split(char,",") @#将字符串生成数组
   ycodenum=4
   for i=1 to ycodenum
     Randomize
     ycode=ycode&yc(Int((35*Rnd))) @#数组一般从0开始读取,所以这里为35*Rnd
   next

   response.write ycode
 
   现在看看输出结果是不是数字和字母随机组合的呢?

   下面看看怎样生成图片,这个也许有些朋友知道:asp不能生成图片,必须使用asp组件。不错,我们这里使用的是ASP图象组件shotgraph。有一点大家注意,服务器不是自己的不能用哦,因为你装不了这组件。

   组件的下载地址:http://www.knowsky.com/download/ShotGraph.rar,至于怎么注册,这里就不多说了,网上有很多资料

   我们看看生成图片的代码:

   ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" @#将数字和大写字母组成一个字符串
   yc=split(char,",") @#将字符串生成数组
   ycodenum=4
   for i=1 to ycodenum
     Randomize
     ycode=ycode&yc(Int((35*Rnd))) @#数组一般从0开始读取,所以这里为35*Rnd
   next

   Response.Clear
   Response.ContentType="image/gif"
   set obj=Server.CreateObject("shotgraph.image")
   x=55 @#图片的宽
   y=26 @#图片的高
   obj.CreateImage x,y,8 @#8是图片的颜色8位
   obj.SetColor 0,55,126,222
   obj.SetColor 1,255,255,255

   obj.CreatePen "PS_SOLID",1,0
   obj.SetBgColor 0
   obj.Rectangle 0,0,x-1,y-1
   obj.SetBkMode "TRANSPARENT"
   obj.CreateFont "Arial",136,18,1,False,False,False,False
   obj.SetTextColor 1
   obj.TextOut 5,4,ycode&" "

   img=obj.GifImage(-1,1,"")
   Response.BinaryWrite (img)

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值