<%
Option Explicit
Response.buffer=true
Call Com_CreatValidCode("ValidCode")
Sub Com_CreatValidCode(VerifyCode)
' 禁止缓存
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachecontrol = "no-cache"
Response.ContentType = "Image/BMP"
Randomize
Dim i, ii, iii
Const cOdds = 7 ' 杂点出现的机率
' 颜色的数据(字符,背景)
Dim vColorData(1)
Dim a,b,c,Text_Len,vCode()
a = Rnd * 256
b = Rnd * 256
c = Rnd * 256
vColorData(0) = ChrB(a) & ChrB(b) & ChrB(c) ' 蓝0,绿0,红0(黑色)
vColorData(1) = ChrB(250) & ChrB(250) & ChrB(250) ' 蓝250,绿236,红211(浅蓝色)
' 随机产生字符
Text_Len = 4 ''验证码长度(支持1-25位)
ReDim vCode( Text_Len - 1 )
Const cAmount = 36 ' 文字数量
Const cCode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
'Dim vCode(4), vCodes
Dim vCodes
For i = 0 To Text_Len-1
vCode(i) = Int(Rnd * cAmount)
vCodes = vCodes & Mid(cCode, vCode(i) + 1, 1)
Next
Session("VerifyCode") = vCodes '记录入Session
Session.Timeout = 3 '会话生命周期为8分钟
' 字符的数据
Dim vNumberData(35)
vNumberData(0) = "00000000000001111000001100110000110111000011011100001100110000111011000011101100001100110000011110000000000000"
vNumberData(1) = "00000000000000011000000011100000111110000000011000000001100000000110000000011000000001100000000110000000000000"
vNumberData(2) = "00000000000001111000001100110000110011000000001100000001100000001100000001100000001100000000111111000000000000"
vNumberData(3) = "00000000000001111000001100110000110011000000001100000011100000000011000011001100001100110000011110000000000000"
vNumberData(4) = "00000000000001100000000110000000011011000001101100000110110000110011000011111110000000110000000011000000000000"
vNumberData(5) = "00000000000011111100001100000000110000000011000000001111100000000011000000001100000001100000111100000000000000"
vNumberData(6) = "00000000000000111000000011000000011000000011111000001100110000110011000011001100001100110000011110000000000000"
vNumberData(7) = "00000000000011111100000000110000000110000000011000000011000000001100000001100000000110000000011000000000000000"
vNumberData(8) = "00000000000001111000001100110000110011000011101100000111100000110111000011001100001100110000011110000000000000"
vNumberData(9) = "00000000000001111000001100110000110011000011001100001100110000011111000000011000000011000000011100000000000000"
vNumberData(10) = "11110111111111011111111010111111101011111110101111111010111111000001111101110111110111011110001000110000000000"
vNumberData(11) = "10000001111101111011110111101111011101111100001111110111011111011110111101111011110111101110000001110000000000"
vNumberData(12) = "11100000111101111011101111101110111111111011111111101111111110111111111011111011110111011111100011110000000000"
vNumberData(13) = "10000011111101110111110111101111011110111101111011110111101111011110111101111011110111011110000011110000000000"