ASP生成XBM圖可用作驗證碼

字號:

這個程序主要是先生成一個隨機數(shù),然后根據(jù)生成的隨機數(shù)經(jīng)過變換后作為XBM圖片的內(nèi)容,最后顯示這個圖片. 驗證時中要獲取輸入的數(shù)字和Session("validatecode")比較,如果相等則通過驗證(還要注意一下相比較的兩數(shù)據(jù)的類型保持一致)。
    如何顯示生成的圖片呢?
    關于XBM圖的格式信息,看這里
    http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39134972,00.htm
    xbm.asp的代碼如下
    程序代碼:
    <%
    '開啟緩沖
    Response.Buffer = True
    With Response
    .Expires = -1
    .AddHeader "Pragma","no-cache"
    .AddHeader "cache-ctrol","no-cache"
    End With
    Dim num
    Randomize
    num = Int(7999 * Rnd + 2000)
    Session("validateCode") = num
    Dim Image
    Dim Width, Height
    Dim digtal
    Dim Length
    Dim sort
    Dim hc
    Length = 4
    hc = chr(13) & chr(10)
    Redim sort(Length)
    digital = ""
    For I = 1 To Length - Len(num)
    digital = digital & "0"
    Next
    For I = 1 To Len(num)
    digital = digital & Mid(num, I, 1)
    Next
    For I = 1 To Len(digital)
    sort(I) = Mid(digital, I, 1)
    Next
    Width = 8 * Len(digital)
    Height = 10
    Response.ContentType = "image/x-xbitmap"
    Image = "#define counter_width " & Width & hc
    Image = Image & "#define counter_height " & Height & hc
    Image = Image & "static unsigned char counter_bits[] = {" & hc
    For I = 1 To Height
    For J = 1 To Length
    Image = Image & a(sort(J),I) & ","
    Next
    Next
    Image = Left(Image, Len(Image) - 1)
    Image = Image & "};" & hc
    Response.Write Image
    %>