数字和字母组合并生成图片的验证码祥解

None.gif 数字和字母组合并生成图片的验证码祥解  
None.gif   大家经常在网上登陆的时候经常会看到让你输入验证码,有的是文字的,有的呢是图片,比如chinaren.com校友录中留言的时候,我们就会看到数字图片验证码;网上关于数字文字验证码实现方法的相关资料很多,而我们这里介绍的是数字和字母随机组成的并且生成图片的验证码的实现方法。看起来很复杂、其实很简单的,大家跟着我往下看:
None.gif
None.gif  首先,我们先介绍一下设计思路,数字和字母的随机组合生成验证码,然后将验证码生成图片,这里
" 数字和字母的组合 " 应该是随机取出来的;如果是专门的数字验证码,我们可以这样实现:
None.gifycodenum
= 4   ' 验证码的位数,或者说成个数
None.gif
   for  i = 1   to  ycodenum
None.gif    
Randomize   ' 初始化随机数发生器
None.gif
    ycode = ycode & Int (( 9 * Rnd ))  ' rnd是随机数,从0到1之间的任意实数,这里获得0到9之间的整数
None.gif
   next
None.gif
None.gif  response.write ycode 
' 就可以输出数字验证码(4位)
None.gif

None.gif  然而,我们要让数字和字母同样随机生成,这里我们可以用到数组来实现这种效果,如下:
None.gif
None.gif  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 "   ' 将数字和大写字母组成一个字符串
None.gif
  yc = split (char, " , " ' 将字符串生成数组
None.gif
  ycodenum = 4
None.gif  
for  i = 1   to  ycodenum
None.gif    
Randomize
None.gif    ycode
= ycode & yc( Int (( 35 * Rnd )))  ' 数组一般从0开始读取,所以这里为35*Rnd
None.gif
   next
None.gif
None.gif  response.write ycode 
None.gif  
None.gif  现在看看输出结果是不是数字和字母随机组合的呢?
None.gif
None.gif  下面看看怎样生成图片,这个也许有些朋友知道:asp不能生成图片,必须使用asp组件。不错,我们这里使用的是ASP图象组件shotgraph。有一点大家注意,服务器不是自己的不能用哦,因为你装不了这组件。
None.gif
None.gif  组件的下载地址:http:
// www.wrclub.net / down.aspx?id = 545 ,至于怎么注册,这里就不多说了,网上有很多资料
None.gif
None.gif  我们看看生成图片的代码:
None.gif
None.gif  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 "   ' 将数字和大写字母组成一个字符串
None.gif
  yc = split (char, " , " ' 将字符串生成数组
None.gif
  ycodenum = 4
None.gif  
for  i = 1   to  ycodenum
None.gif    
Randomize
None.gif    ycode
= ycode & yc( Int (( 35 * Rnd )))  ' 数组一般从0开始读取,所以这里为35*Rnd
None.gif
   next
None.gif
None.gif  Response.Clear
None.gif  Response.ContentType
= " image/gif"
None.gif
   set  obj = Server. CreateObject ( " shotgraph.image " )
None.gif  x
= 55   ' 图片的宽
None.gif
  y = 26   ' 图片的高
None.gif
  obj.CreateImage x,y, 8   ' 8是图片的颜色8位
None.gif
  obj.SetColor  0 , 55 , 126 , 222
None.gif  obj.SetColor 
1 , 255 , 255 , 255
None.gif
None.gif  obj.CreatePen 
" PS_SOLID " , 1 , 0
None.gif  obj.SetBgColor 
0
None.gif  obj.Rectangle 
0 , 0 ,x - 1 ,y - 1
None.gif  obj.SetBkMode 
" TRANSPARENT"
None.gif
  obj.CreateFont  " Arial " , 136 , 18 , 1 , False , False , False , False
None.gif  obj.SetTextColor 
1
None.gif  obj.TextOut 
5 , 4 ,ycode & "  "
None.gif

None.gif
  img = obj.GifImage( - 1 , 1 , "" )
None.gif  Response.BinaryWrite (img)
None.gif
None.gif  针对以上代码也就是说shotgraph普通的画图的原理请参考:http:
// www.pconline.com.cn / pcedu / empolder / wz / asp / 10204 / 45207 .html
None.gif
None.gif  OK,这样就完成了,我们来看看效果吧!
None.gif
None.gif  说明,以上生成图片组件和代码由毒爱提供,大家有什么建议或者更好的方法,可以到网人论坛(http:
// bbs.wrclub.net)发贴,网人论坛始终欢迎您的到来!
None.gif
None.gif原始出处:http:
// www.wrclub.net / show.aspx?id = 1524
None.gif 
None.gif

转载于:https://www.cnblogs.com/miaomiaoga/archive/2005/02/11/103752.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值