Call COM_CREATVALIDCODE ("Validcode")
SUB COM_CREATVALIDCODE (PSN)
'Author: Layen
'QQ: 84815733
'E-mail: support@ssaw.net
'Prohibition of caching
Response.expires = -9999
Response.addheader "Pragma", "NO-CACHE"
Response.addheader "Cache-Ctrol", "NO-CACHE"
Response.contentType = "image / bmp"
Randomize
DIM I, II, III
Const Codds = 8 'Miscellaneous Neighborhood
Const Camount = 36 'Text Number
Const ccode = "0123456789abcdefghijklmnopqrstuvwxyz"
'Color data (character, background)
DIM VCOLORDATA (1)
Vcolordata (0) = chrb (0) & chrb (0) & chrb (0) 'Blue 0, Green 0, Red 0 (black)
Vcolordata (1) = chrb (250) & chrb (236) & chrb (211) 'Blue 250, Green 236, Red 211 (light blue)
'Random generate characters
DIM VCODE (4), vcodes
For i = 0 TO 3
Vcode (i) = int (rND * CAMOUNT)
Vcodes = Vcodes & Mid (Ccode, Vcode (i) 1, 1)
NEXT
Session (PSN) = vcodes' records Session
'Data of characters
DIM VNUMBERDATA (35)
Vnumberdata (0) = "1110000111110111101110111011011101001011101001011101110111011101110111111000111"
Vnumberdata (1) = "11110111111110111111111110111111101111111011101111111011111110111111111101111111111111100000111"
Vnumberdata (2) = "11100001111101110111011101110111011101110111011111011101110111011101111101110111000000011"
Vnumberdata (3) = "1110000111110111011101110111011101110111111011101110111011101110111011101110111011101110111011111100000111"
Vnumberdata (4) = "11111011111111101111111101110101011101110110111011101101101111111111111111111111000011"
vNumberData (5) = "1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111" vNumberData (6) = "1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111"
Vnumberdata (7) = "110000001111101110111110111011101110111011111011111110111111111011111111111111111111111111111111"
VNUMBERDATA (8) = "11100001111101110111011101110111011101110111011101110111011101110111011101110111011111100000111"
Vnumberdata (9) = "11100011111011101110111011101110111011101111101111111011101110111111101111"
Vnumberdata (10) = "1111011111111101110111010101111101010111010101111101110111011101110111011101110111011"
Vnumberdata (11) = "1000000111110111011101110111011101110111011101110111011101110111011101110111011101110000000111"
Vnumberdata (12) = "1110000011101110111011101110111011101110111011101110111011101110111011101110111011111101111"
Vnumberdata (13) = "100000111110111011101110111011101110111011101110111011101110111011101110111011101110111111011101110111011101111110111011101111"
VNUMBERDATA (14) = "100000011111011110111011101110111011101110110110111011101110111011101110000000111"
Vnumberdata (15) = "100000011111011110111011101110111011101110111011101110111011101110111011111111111111111111"
VNUMBERDATA (16) = "11100001111101110111011101110111011111011101110111011101110111011101111101111"
Vnumberdata (17) = "10001000111011101110111011101110111011101110111011101110111011101100011"
vNumberData (18) = "1100000111111101111111110111111111011111111101111111110111111111011111111101111111110111111100000111" vNumberData (19) = "1110000011111110111111111011111111101111111110111111111011111111101111111110111110111011111000011111"
VNUMBERDATA (20) = "1000100011110111011101110111011101110111011101110111011101110111011011"
Vnumberdata (21) = "100011111111101111111110111111101111111111101111101110111011101110111011110000000011"
Vnumberdata (22) = "100010011110010011001111010101011101010101010101011101010101010101010101010110011"
VNumberdata (23) = "1000100011110011011101110101010111010101011101110111010111011101110111101111"
Vnumberdata (24) = "1110001111101110111011101110111011101110111011101110111011101110111011101110111011101111"
Vnumberdata (25) = "10000001111101111011101110111011101110111011111011101111111111111111111111"
Vnumberdata (26) = "1110001111110111011101110111011101110111011101110111011101110111011101110111011"
Vnumberdata (27) = "10000011111101110111011101110111011101110111011101110111011101110111011101110110011"
Vnumberdata (28) = "111000001111011110111011101110111011110111101110111011101110111011101111011101110111011110111101111011110111101111011101110111011110111101111011110111101111011110111101111011110111101111011110111101111011110111101111011110111101111011110111101111011110111101111011110111101111011101111011110111101111101111011110111101111011110111101111011110111101111011110111101111011)
Vnumberdata (29) = "1000000011101101101110111011101110111111111011101111101111111110111111111111111111111111111111"
Vnumberdata (30) = "100010001110111011101110111011101110111011101110111011101110111011101110111011101111111111"
vNumberData (31) = "1000100011110111011111011101111101110111111010111111101011111110101111111010111111110111111111011111" vNumberData (32) = "1001010011110101011111010101111101010111110101011111001001111110101111111010111111101011111110101111"
Vnumberdata (33) = "100010001111011101110111011101011101010111011101110101110111011101100011"
Vnumberdata (34) = "1000100011101110111011101110111010111011101110111111101111111111111111111111"
Vnumberdata (35) = "1100000011101110111111111110111011101111111110111011101110111011101110000011"
'Output image file header
Response.binarywrite chrb (66) & chrb (77) & chrb (230) & chrb (4) & chrb (0) & chrb (0) & chrb (0) & chrb (0) & _
CHRB (0) & chrb (0) & chrb (54) & chrb (0) & chrb (0) & chrb (0) & chrb (40) & chrb (0) & _
CHRB (0) & chrb (0) & chrb (40) & chrb (0) & chrb (0) & chrb (0) & chrb (10) & chrb (0) & _
Chrb (0) & chrb (0) & chrb (1) & chrb (0)
'Output image information head
Response.binarywrite chrb (24) & chrb (0) & chrb (0) & chrb (0) & chrb (0) & chrb (0) & chrb (176) & chrb (4) & _
CHRB (0) & chrb (0) & chrb (18) & chrb (11) & chrb (0) & chrb (0) & chrb (18) & chrb (11) & _
CHRB (0) & chrb (0) & chrb (0) & chrb (0) & chrb (0) & chrb (0) & chrb (0) & chrb (0) & _
Chrb (0) & chrb (0)
For i = 9 to 0 step -1 'passing through
For ii = 0 to 3 'passing through all words
FOR III = 1 to 10 'passing through all pixels
'Output image data in line line, word, pixel
IF rND * 99 1 Response.binarywrite vcolordata (0) Else Response.binaryWrite Vcolordata (VNumberData (Vcode (II)), i * 10 III, 1)) END IF NEXT NEXT NEXT End Sub