<% Call Com_creatvalidcode ("code") Sub Com_creatvalidcode (PSN) ' Disable 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 = 0 ' Odds of occurrence of miscellaneous points Const Camount = 36 ' text quantity Const ccode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" ' Color data (character, background) Dim Vcolordata (1), Vcolorrandom (10) ' Vcolordata (0) = ChrB (int (rnd*155) +100) & ChrB (int (rnd*155) +100) & ChrB (int (rnd*155) +100) ' Blue 0, Green 0, Red 0 (black) Vcolorrandom (0) =CHRB & ChrB (0) & ChrB (0) Vcolorrandom (1) =CHRB (0) & ChrB (+) & ChrB (0) Vcolorrandom (2) =CHRB (0) & ChrB (0) & ChrB (150) Vcolorrandom (3) =CHRB (0) & ChrB (M) & ChrB (150) Vcolorrandom (4) =CHRB & ChrB (+) & ChrB (0) Vcolorrandom (5) =CHRB & ChrB (0) & ChrB (150) Vcolorrandom (6) =CHRB & ChrB (M) & ChrB (10) Vcolorrandom (7) =CHRB & ChrB (+) & ChrB (120) Vcolorrandom (8) =CHRB & ChrB (0) & ChrB (250) Vcolorrandom (9) =CHRB (m) & ChrB (M) & ChrB (100) Vcolorrandom (=CHRB) & ChrB (a) & ChrB (50) Vcolordata (0) = vcolorrandom (0) Vcolordata (1) = ChrB (& ChrB) & ChrB (255) ' Background blue 250, green 236, red 211 (light blue) ' Randomly generated characters Dim Vcode (4), Vcodes,vcodecolors (4) For i = 0 to 3 Vcodecolors (i) =vcolorrandom (Int (RND * 10)) Vcode (i) = Int (Rnd * camount) Vcodes = vcodes & Mid (Ccode, Vcode (i) + 1, 1) Next Session (PSN) = Vcodes ' Log into session ' Character of the 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 (27) = " 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 header Response.BinaryWrite ChrB & ChrB (a) & ChrB (230) & ChrB (4) & ChrB (0) & ChrB (0) & ChrB (0) & ChrB (0) &_ ChrB (0) & ChrB (0) & ChrB (a) & ChrB (0) & ChrB (0) & ChrB (0) & ChrB () & ChrB (0) &_ ChrB (0) & ChrB (0) & ChrB (+) & ChrB (0) & ChrB (0) & ChrB (0) & ChrB (a) & ChrB (0) &_ ChrB (0) & ChrB (0) & ChrB (1) & ChrB (0) ' Output image information header Response.BinaryWrite ChrB & ChrB (0) & ChrB (0) & ChrB (0) & ChrB (0) & ChrB (0) & ChrB (176) & ChrB (4) &_ ChrB (0) & ChrB (0) & ChrB (a) & ChrB (one) & ChrB (0) & ChrB (0) & ChrB (a) & ChrB (one) &_ 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 ' after all lines For II = 0 to 3 ' after all words For III = 1 to 10 ' after all pixels ' Output image data by line, word, pixel Vcolordata (0) =vcodecolors (ii) If Rnd * + 1 < Codds Then ' randomly generated miscellaneous points Response.BinaryWrite vcolordata (0) Else Response.BinaryWrite Vcolordata (Mid vnumberdata (Vcode (ii)), I * + III, 1)) End If Next Next Next End Sub %> |