ASP 生成 XBM 图可用作验证码

这个程序主要是先生成一个随机数,然后根据生成的随机数经过变换后作为XBM图片的内容,最后显示这个图片.验证时中要获取输入的数字和Session("validatecode")比较,如果相等则通过验证(还要注意一下相比较的两数据的类型保持一致)。

如何显示生成的图片呢?<imgsrc="xbm.asp"></img>

关于XBM图的格式信息,看这里
http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39134972,00.htm

xbm.asp的代码如下
程序代码:
<!--#includefile="numcode.asp"-->
<%
'开启缓冲
Response.Buffer=True
WithResponse
.Expires=-1
.AddHeader"Pragma","no-cache"
.AddHeader"cache-ctrol","no-cache"
EndWith

Dimnum
Randomize
num=Int(7999*Rnd+2000)
Session("validateCode")=num

DimImage
DimWidth,Height
Dimdigtal
DimLength
Dimsort
Dimhc
Length=4
hc=chr(13)&chr(10)

Redimsort(Length)

digital=""
ForI=1ToLength-Len(num)
digital=digital&"0"
Next
ForI=1ToLen(num)
digital=digital&Mid(num,I,1)
Next
ForI=1ToLen(digital)
sort(I)=Mid(digital,I,1)
Next
Width=8*Len(digital)
Height=10

Response.ContentType="image/x-xbitmap"

Image="#definecounter_width"&Width&hc
Image=Image&"#definecounter_height"&Height&hc
Image=Image&"staticunsignedcharcounter_bits[]={"&hc

ForI=1ToHeight
ForJ=1ToLength
Image=Image&a(sort(J),I)&","
Next
Next

Image=Left(Image,Len(Image)-1)
Image=Image&"};"&hc

Response.WriteImage
%>

Numcode.asp的代码如下:
程序代码:
<%
Dima(10,10)
a(0,1)="0x3c"'数字0
a(0,2)="0x66"
a(0,3)="0xc3"
a(0,4)="0xc3"
a(0,5)="0xc3"
a(0,6)="0xc3"
a(0,7)="0xc3"
a(0,8)="0xc3"
a(0,9)="0x66"
a(0,10)="0x3c"
a(1,1)="0x18"'数字1
a(1,2)="0x1c"
a(1,3)="0x18"
a(1,4)="0x18"
a(1,5)="0x18"
a(1,6)="0x18"
a(1,7)="0x18"
a(1,8)="0x18"
a(1,9)="0x18"
a(0,10)="0x7e"
a(2,1)="0x3c"'数字2
a(2,2)="0x66"
a(2,3)="0x60"
a(2,4)="0x60"
a(2,5)="0x30"
a(2,6)="0x18"
a(2,7)="0x0c"
a(2,8)="0x06"
a(2,9)="0x06"
a(2,10)="0x7e"
a(3,1)="0x3c"'数字3
a(3,2)="0x66"
a(3,3)="0xc0"
a(3,4)="0x60"
a(3,5)="0x1c"
a(3,6)="0x60"
a(3,7)="0xc0"
a(3,8)="0xc0"
a(3,9)="0x66"
a(3,10)="0x38"
a(4,1)="0x38"'数字4
a(4,2)="0x3c"
a(4,3)="0x36"
a(4,4)="0x33"
a(4,5)="0x33"
a(4,6)="0x33"
a(4,7)="0xff"
a(4,8)="0x30"
a(4,9)="0x30"
a(4,10)="0xfe"
a(5,1)="0xfe"'数字5
a(5,2)="0xfe"
a(5,3)="0x06"
a(5,4)="0x06"
a(5,5)="0x3e"
a(5,6)="0x60"
a(5,7)="0xc0"
a(5,8)="0xc3"
a(5,9)="0x66"
a(5,10)="0x3c"
a(6,1)="0x60"'数字6
a(6,2)="0x30"
a(6,3)="0x18"
a(6,4)="0x0c"
a(6,5)="0x3e"
a(6,6)="0x63"
a(6,7)="0xc3"
a(6,8)="0xc3"
a(6,9)="0x66"
a(6,10)="0x3c"
a(7,1)="0xff"'数字7
a(7,2)="0xc0"
a(7,3)="0x60"
a(7,4)="0x30"
a(7,5)="0x18"
a(7,6)="0x18"
a(7,7)="0x18"
a(7,8)="0x18"
a(7,9)="0x18"
a(7,10)="0x18"
a(8,1)="0x3c"'数字8
a(8,2)="0x66"
a(8,3)="0xc3"
a(8,4)="0x66"
a(8,5)="0x3c"
a(8,6)="0x66"
a(8,7)="0xc3"
a(8,8)="0xc3"
a(8,9)="0x66"
a(8,10)="0x3c"
a(9,1)="0x3c"'数字9
a(9,2)="0x66"
a(9,3)="0xc3"
a(9,4)="0xc3"
a(9,5)="0x66"
a(9,6)="0x3c"
a(9,7)="0x18"
a(9,8)="0x0c"
a(9,9)="0x06"
a(9,10)="0x03"
%>
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值