这个程序主要是先生成一个随机数,然后根据生成的随机数经过变换后作为XBM图片的内容,最后显示这个图片.验证时中要获取输入的数字和Session("validatecode")比较,如果相等则通过验证(还要注意一下相比较的两数据的类型保持一致)。
如何显示生成的图片呢?<imgsrc="xbm.asp"></img>
关于XBM图的格式信息,看这里
http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39134972,00.htm
xbm.asp的代码如下
Numcode.asp的代码如下:
如何显示生成的图片呢?<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" %> |