Vi el método de agrietamiento violento en Internet. Se prohibirá la página que envíe una sumisión externa.
Archivo ASP: Code.asp
Archivo de datos: Body.fix, head.fix
Uso: <img src = http://blog.netbei.com/code.asp>
Respuesta.Buffer = True
Numorizar
Función numCode ()
Respuesta.expires = -1
Respuesta
Respuesta
Dim Znum, I, J
Dim ADOS, ADOS1
Aleatorizar el tiempo de tiempo
Generar cuatro dígitos aleatorios:
Znum = Cint (8999*RND 1000)
Pasar a la sesión
Sesión (getCode) = znum
El bucle for es poner el número aleatorio en una matriz de 3 asentamiento 3, que es conveniente para proporcionar a la transformación de la matriz posterior
Dim Zimg (3), NSTR
NSTR = CSTR (ZNUM)
Para i = 0 a 3
zimg (i) = cint (Mid (nstr, i 1,1)))
Próximo
Dim POS
'Defina dos objetos binarios ADODB.stream para el uso de la operación de datos de imagen:
establecer ados = server.createObject (ADODB.Stream)
ADOS.MODE = 3
ADOS.TYPE = 1
ADOS. Abierto
Establecer ADOS1 = Server.CreateObject (ADODB.Stream)
ADOS1.MODE = 3
ADOS1.TYPE = 1
ADOS1.Apen
'Cargar 0 ~ 9 Datos digitales 10x100, datos de matriz GBR, cada uno de 320 bytes, 10 números 3200 byte
'BGR un punto, 10x10 puntos un número, un punto tres bytes (binario 8 bits, hexadecimal 00 ~ ff)
'Una línea de 10 puntos de 30 bytes línea que termina 00 00 00 dos bytes de dos bytes, por lo que una imagen de 10x100 es menor que la imagen larga, cada número 10x10 es 320 bytes
'Aquellos que crecen más que amplios, no hay forma de finalizar la marca 0000, son 300 bytes directamente
Estos son los datos del BMP de 24 bits.
'En cuanto a la cabeza, también es muy simple, que incluye longitud y ancho, la imagen comienza a marcar y así
ADOS.LOADFROMFILE (Server.Mappath (Body.fix))
ADOS1.WRITE ADOS.READ (1280)
'El primero para el bucle, y los cuatro números correspondientes se extraen del número de números aleatorios generados a partir de 10x100
Pero matriz de números verticales
para i = 0 a 3
Ados.position = (9-zimg (i))*320
Ados1.position = i*320
ADOS1.WRITE ADOS.READ (320)
próximo
'Borre los datos de ADO que se han utilizado y ajusta el nuevo cabezal de imagen 54 bytes del archivo de encabezado
ADOS.LOADFROMFILE (server.mappath (head.fix))
Pos = lenb (ados.read ())
ADOS.positation = POS 'Especifique la posición POS, puede agregar datos gráficos a la posición de 54 bytes
El segundo para bucle, el número de números de números, desde bloques verticales hasta bloques numéricos horizontales
El método es extraer 4 veces 320 bytes para escribir 30 bytes a los objetos ADOS, y luego extraer datos de imagen que cambian la segunda línea.
30 bytes se deben a la etiqueta final con una fila de 00 00 en BMP.
para i = 0 a 9 paso 1
para j = 0 a 3
ADOS1.Position = I*32 J*320
ADOS.POSITIVA = POS 30*JI*120
ADOS.WRITE ADOS1.READ (30)
próximo
próximo
ADOS.POSITIVA = 0
Respuesta.BinaryWrite envía directamente datos de imagen al cliente
Respuesta.ContentType = Image/BMP
Response.BinaryWrite Ados.read ()
ADOS.CLOSE: establecer ADOS = nada
ADOS1.CLOSE: establecer ADOS1 = nada
Reimpresión de la función final, indique desde el IM286.com obsoleto, esta dirección de publicación: http://www.im286.com/viewthread.php?
Para comprender estos códigos, es principalmente comprender el objeto de los datos binarios en ASP, ADODB.stream! Este programa utiliza principalmente ADODB.Stream. Ayer no hay un buen motor de identificación. Identifique 4321 a 89910, por lo que el código de imagen sigue siendo más seguro.
Vi el método de agrietamiento violento en Internet. Se prohibirá la página que envíe una sumisión externa.
Archivo ASP: Code.asp
Archivo de datos: Body.fix, head.fix
Uso: <img src = "http://blog.netbei.com/code.asp" >>
Respuesta.Buffer = True
Numorizar
Función numCode ()
Respuesta.expires = -1
Respuesta.AddHeader "Pragma", "No-Cache"
Respuesta.AddHeader "Cache-CLM", "No-Cache"
Dim Znum, I, J
Dim ADOS, ADOS1
Aleatorizar el tiempo de tiempo
Generar cuatro dígitos aleatorios:
Znum = Cint (8999*RND 1000)
Pasar a la sesión
Sesión ("getCode") = znum
El bucle for es poner el número aleatorio en una matriz de 3 asentamiento 3, que es conveniente para proporcionar a la transformación de la matriz posterior
Dim Zimg (3), NSTR
NSTR = CSTR (ZNUM)
Para i = 0 a 3