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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
sqlserver中求字符串中汉字的个数的sql语句
2012-06-06 19:53:37
快速图片链接批处理
2007-02-03 11:39:00
IE8的一些CSS hack
2008-03-17 13:08:00
![](https://img.aspxhome.com/file/UploadPic/20083/17/2008317132156169s.jpg)
ASC码对照表
2008-08-07 13:07:00
asp + oracle 分页方法
2010-05-11 20:09:00
说说掌握JavaScript语言的思想前提
2008-12-26 17:59:00
用CSS实现柱状图(Bar Graph)的方法(四)—table实现复杂柱状图
2008-05-28 12:55:00
![](https://img.aspxhome.com/file/UploadPic/20085/28/200852813283924s.jpg)
解密SQL Server数据库系统的编译
2009-03-16 17:33:00
服务器端的代码是如何被解释成客户端的?
2009-11-01 15:15:00
ASP开发10条经验总结
2007-09-30 13:36:00
用Dreamweaver MX设计各种网页鼠标样式
2008-10-04 10:18:00
30个最常用css选择器解析
2011-06-16 20:36:37
Mootools 1.2教程(14)——定时器和哈希简介
2008-12-08 12:50:00
Google Chrome的hack写法以及CSS的支持程度
2008-09-04 12:28:00
最近写的一个asp缓存函数
2008-11-25 14:07:00
如何在Access 2007数据库中添加附件
2008-11-21 12:32:00
HTML5 Canvas 起步(3) - 颜色与渐变
2009-06-08 12:58:00
![](https://img.aspxhome.com/file/UploadPic/20096/8/3-colors-72s.jpg)
ASP函数过滤数组中重复数据方法
2010-01-02 20:32:00
在Recordset对象中查询记录的方法
2008-11-20 16:51:00
mysql 获取表有多少列
2010-10-14 13:44:00