www.gusucode.com > 25175 学生成绩管理查询系统码程序 > IMGCHK/validatecode.asp

    <%
Option Explicit
Response.Buffer = True
Response.Expires = -1
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-ctrol","no-cache"
Dim RndNum,ImgFileContent
Randomize Timer
RndNum = Cint(7999*Rnd+1000)
Session("cnbruce.com_ValidateCode") = Cstr(RndNum)
ImgFileContent=NumCode(RndNum)
Response.ContentType = "image/BMP"
Response.BinaryWrite ImgFileContent

Function NumCode(NumS)
    Dim NumI,NumJ
    Dim AdoM,AdoN
    Dim Arr_Img(4),NStr
        NStr=Cstr(NumS)
        For NumI=0 To 3
            Arr_Img(NumI)=Cint(Mid(NStr,NumI+1,1))
        Next
    Dim Position
    Set AdoM=Server.CreateObject("Adodb.Stream")
        AdoM.Mode=3
        AdoM.Type=1
        AdoM.Open
        Set AdoN=Server.CreateObject("Adodb.Stream")
        AdoN.Mode=3
        AdoN.Type=1
        AdoN.Open
        AdoM.LoadFromFile(Server.Mappath("validatebody.fix"))
        AdoN.Write AdoM.Read(1280)
        For NumI=0 To 3
            AdoM.Position=(9-Arr_Img(NumI))*320
            AdoN.Position=NumI*320
            AdoN.Write AdoM.Read(320)
        Next    
        AdoM.LoadFromFile(Server.Mappath("validatehead.fix"))
        Position=Lenb(AdoM.Read())
        AdoM.Position=Position
        For NumI=0 To 9 Step 1
            For NumJ=0 To 3
                AdoN.Position=NumI*32+NumJ*320
                AdoM.Position=Position+30*NumJ+NumI*120
                AdoM.Write AdoN.Read(30)
            Next
        Next
        AdoM.Position = 0
        NumCode = AdoM.Read()
        AdoM.Close:Set AdoM=Nothing
        AdoN.Close:Set AdoN=Nothing
End Function
%>