一个生成随机验证码的源码

作者: 来源: 日期:2007-1-31

验证码示例:

验证码示例

使用方法:
将你要生成随机码的地方加上 <img src="code.asp">,把 code.asp、body.fix、Head.fix(下载 body.fix 和 Head.fix)文件放在同一目录下。如果你想放在其他目录也可以,不过要打开文件修改其中的路径。

<%
Option Explicit
NumCode
Function NumCode()
   Response.Expires = -1
   Response.AddHeader "Pragma","no-cache"
   Response.AddHeader "cache-ctrol","no-cache"
   dim zNum,i,j
   dim Ados,Ados1
   Randomize timer
   zNum = cint(8999*Rnd+1000)
   Session("rndnum") = zNum
   dim zimg(4),NStr
       NStr=cstr(zNum)
       For i=0 to 3
           zimg(i)=cint(mid(NStr,i+1,1))
       Next
   dim Pos
   set Ados=Server.CreateObject("Adodb.Stream")
       Ados.Mode=3
       Ados.Type=1
       Ados.Open
   set Ados1=Server.CreateObject("Adodb.Stream")
       Ados1.Mode=3
       Ados1.Type=1
       Ados1.Open
       Ados.LoadFromFile(Server.mappath("body.Fix"))
       Ados1.write Ados.read(1280)
       for i=0 to 3
           Ados.Position=(9-zimg(i))*320
           Ados1.Position=i*320
           Ados1.write ados.read(320)
       next   
       Ados.LoadFromFile(Server.mappath("head.fix"))
       Pos=lenb(Ados.read())
       Ados.Position=Pos
       for i=0 to 9 step 1
           for j=0 to 3
               Ados1.Position=i*32+j*320
               Ados.Position=Pos+30*j+i*120
               Ados.write ados1.read(30)
           next
       next
       Response.ContentType = "image/BMP"
       Ados.Position=0
       Response.BinaryWrite Ados.read()
       Ados.Close:set Ados=nothing
       Ados1.Close:set Ados1=nothing
End Function
%>

把这个文件保存为asp文件,然后在上面引用就可以了

相关文章