asp使用shotgraph组件生成数字和字母验证码

时间:2007-09-26 12:26:00 

大家经常在网上登陆的时候经常会看到让你输入验证码,有的是文字的,有的呢是图片,比如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。有一点大家注意,服务器不是自己的不能用哦,因为你装不了这组件。 
   
   shotgraph组件下载地址:ShotGraph图象组件.rar (91.51 KB),至于怎么注册,这里就不多说了,网上有很多资料
  
   我们看看生成图片的代码:


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)


    


标签:验证码,shotgraph
0
投稿

猜你喜欢

  • 四个Python操作Excel的常用脚本分享

    2023-12-04 07:04:27
  • Python实现在tkinter中使用matplotlib绘制图形的方法示例

    2022-12-16 03:43:37
  • Python反爬虫技术之防止IP地址被封杀的讲解

    2022-05-09 10:44:12
  • python爬虫爬取网页数据并解析数据

    2022-03-03 06:25:02
  • vue使用localStorage保存登录信息 适用于移动端、PC端

    2024-04-30 08:46:25
  • Vue 解决在element中使用$notify在提示信息中换行问题

    2024-04-28 10:53:35
  • MySQL高并发生成唯一订单号的方法实现

    2024-01-28 00:27:38
  • 利用Python演示数型数据结构的教程

    2022-04-29 07:05:40
  • 迎来2009年CSS裸奔节(CSS Naked Day )

    2009-04-24 12:41:00
  • PHP保留两位小数的几种方法

    2023-11-15 05:17:54
  • 对用户进行电话访谈的一点感想

    2009-12-28 13:05:00
  • python统计日志ip访问数的方法

    2023-07-05 18:57:20
  • 关于自动化测试框架pytest的Fixture固件

    2023-10-16 00:02:50
  • 使用Go语言解决Scan空格结束输入问题

    2024-04-27 15:38:37
  • win10环境下使用Hyper-V进行虚拟机创建的教程(图解)

    2022-08-01 02:25:06
  • SQL2005 自动备份的脚本

    2024-01-23 20:34:27
  • Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】

    2021-01-28 10:30:49
  • python连接、操作mongodb数据库的方法实例详解

    2024-01-12 13:44:40
  • MySQL 数据库范式化设计理论总结

    2024-01-12 17:29:07
  • python2.7 安装pip的方法步骤(管用)

    2022-02-11 06:28:43
  • asp之家 网络编程 m.aspxhome.com