Call com_creatvalidcode ("validcode ")
Sub com_creatvalidcode (PSN)
'Author: layen
'Qq: 84815733
'E-mail: support@ssaw.net
'Prohibit 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' probability of occurrence of miscellaneous
Const camount = 36' text count
Const cCode = "0123456789 abcdefghijklmnopqrstuvwxyz"
'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)
'Randomly generated 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 'record the session
'Character data
Dim vnumberdata (35)
Vnumberdata (0) = "1110000111110111101111011110111101001011110100101111010010111101001011110111101111011110111110000111"
Vnumberdata (1) = "1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111100000111"
Vnumberdata (2) = "1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111100000011"
Vnumberdata (3) = "1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111110000111"
Vnumberdata (4) = "1111101111111110111111110011111110101111110110111111011011111100000011111110111111111011111111000011"
Vnumberdata (5) = "1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111"
Vnumberdata (6) = "1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111"
Vnumberdata (7) = "1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111111011111"
Vnumberdata (8) = "1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111110000111"
Vnumberdata (9) = "1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111110001111"
Vnumberdata (10) = "1111011111111101111111101011111110101111111010111111101011111100000111110111011111011101111000100011"
Vnumberdata (11) = "1000000111110111101111011110111101110111110000111111011101111101111011110111101111011110111000000111"
Vnumberdata (12) = "1110000011110111101110111110111011111111101111111110111111111011111111101111101111011101111110001111"
Vnumberdata (13) = "1000001111110111011111011110111101111011110111101111011110111101111011110111101111011101111000001111"
Vnumberdata (14) = "1000000111110111101111011011111101101111110000111111011011111101101111110111111111011110111000000111"
Vnumberdata (15) = "1000000111110111101111011011111101101111110000111111011011111101101111110111111111011111111000111111"
Vnumberdata (16) = "1110000111110111011110111101111011111111101111111110111111111011100011101111011111011101111110001111"
Vnumberdata (17) = "1000100011110111011111011101111101110111110000011111011101111101110111110111011111011101111000100011"
Vnumberdata (18) = "1100000111111101111111110111111111011111111101111111110111111111011111111101111111110111111100000111"
Vnumberdata (19) = "1110000011111110111111111011111111101111111110111111111011111111101111111110111110111011111000011111"
Vnumberdata (20) = "1000100011110111011111011011111101011111110001111111010111111101101111110110111111011101111000100011"
Vnumberdata (21) = "1000111111110111111111011111111101111111110111111111011111111101111111110111111111011110111000000011"
Vnumberdata (22) = "1000100011110010011111001001111100100111110101011111010101111101010111110101011111010101111001010011"
Vnumberdata (23) = "1000100011110011011111001101111101010111110101011111010101111101100111110110011111011001111000110111"
Vnumberdata (24) = "1110001111110111011110111110111011111011101111101110111110111011111011101111101111011101111110001111"
Vnumberdata (25) = "1000000111110111101111011110111101111011110000011111011111111101111111110111111111011111111000111111"
Vnumberdata (26) = "1110001111110111011110111110111011111011101111101110111110111011111011101001101111011001111110001011"
Vnumberdata (27th) = "1000001111110111011111011101111101110111110000111111010111111101101111110110111111011101111000110011"
Vnumberdata (28) = "1110000011110111101111011110111101111111111001111111111001111111111011110111101111011110111100000111"
Vnumberdata (29) = "1000000011101101101111110111111111011111111101111111110111111111011111111101111111110111111110001111"
Vnumberdata (30) = "1000100011110111011111011101111101110111110111011111011101111101110111110111011111011101111110001111"
Vnumberdata (31) = "1000100011110111011111011101111101110111111010111111101011111110101111111010111111110111111111011111"
Vnumberdata (32) = "1001010011110101011111010101111101010111110101011111001001111110101111111010111111101011111110101111"
Vnumberdata (33) = "1000100011110111011111101011111110101111111101111111110111111110101111111010111111011101111000100011"
Vnumberdata (34) = "1000100011110111011111011101111110101111111010111111110111111111011111111101111111110111111110001111"
Vnumberdata (35) = "1100000011110111011111111101111111101111111110111111110111111111011111111011111111101110111100000011"
'Output image file headers
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 Headers
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 'goes through all rows
For II = 0 to 3' goes through all words
For IIi = 1 to 10' goes through all pixels
'Output image data row by row, word by word, and pixel by Pixel
If RND * 99 + 1 <codds then' random generation of miscellaneous
Response. binarywrite vcolordata (0)
Else
Response. binarywrite vcolordata (mid (vnumberdata (vcode (II), I * 10 + III, 1 ))
End if
Next
Next
Next
End sub