Um diese Codes zu verstehen, ist es hauptsächlich, das Objekt der Binärdaten in ASP, adodb.stream! In diesem Programm werden adodb.stream hauptsächlich verwendet. Es gibt noch keine gute Identifikationsmotor. Identifizieren Sie 4321 bis 89910, damit der Bildcode immer noch sicherer ist. Ich habe die Methode des gewaltsamen Cracks im Internet gesehen. Die Seite wird untersagt, externe Einreichungen auf diese Weise einzureichen. ASP -Datei: Code.asp Datendatei: body.fix, head.fix Verwendung: <img src = "code.asp"> <% Response.buffer = true Numcode Funktion numcode () Response.expires = -1 Response.addHeader "Pragma", "No-Cache" Response.addHeader "Cache-CLM", "No-Cache" Dim Znum, I, J. Dim Ados, ADOS1 Timeer randomisieren Generieren Sie zufällige vier Ziffern: Znum = Cint (8999*RND 1000) Zur Sitzung übergeben Sitzung ("getCode") = Znum Die für Schleife soll die Zufallszahl in ein Array von 3 Siedlung 3 einbringen, was für die nachfolgende Array -Transformation zweckmäßig zur Verfügung steht Dim Zimg (3), nstr Nstr = cstr (Znum) Für i = 0 bis 3 zimg (i) = cint (MID (nstr, i 1,1))) Nächste Dim pos 'Definieren Sie zwei adodb.stream -binäre Objekte für die Verwendung der Bilddatenoperation: Setzen Sie ados = server.createObject ("adodb.stream") Ados.mode = 3 Ados.type = 1 Ados.open Setzen Sie ados1 = server.createObject ("adodb.stream") Ados1.mode = 3 Ados1.Type = 1 Ados1.open 'Load 0 ~ 9 Digitale Daten 10x100, GBR -Array -Daten, jeweils 320 Bytes, 10 Zahlen 3200Byte 'BGR One Point, 10x10 Punkte Eine Zahl, ein Punkt drei Bytes (binär 8 -Bit, Hexadezimal 00 ~ ff) 'Eine Linie von 10 Punkten 30 Byte -Linien endet 00 00 00 00 Two -Byte 32 Bytes 'Diejenigen, die größer als breit werden, gibt es keine Möglichkeit, die Mark 0000 zu beenden, es sind 300 Bytes direkt Dies sind die Daten des BMP 24bit. 'Was den Kopf betrifft, ist es auch sehr einfach, einschließlich Länge und Breite, Bild beginnen zu markieren und so Ados.loadfromFile (server.mappath ("body.fix")) Ados1.write ados.read (1280) 'Die erste für die Schleife und die entsprechenden vier Zahlen werden aus der Anzahl der zufälligen Zahlen extrahiert, die aus 10x100 generiert werden Aber vertikales Zahlenarray für i = 0 bis 3 Ados.position = (9-zimg (i))*320 Ados1.position = i*320 Ados1.write ados.read (320) nächste 'Löschen Ados.loadfromFile (server.mappath ("head.fix")) Pos = lenb (ados.read ()) Ados.positation = pos 'Geben Sie die POS -Position an Die zweite für die Schleife, die Anzahl der Zahlen, von vertikalen Blöcken bis hin zu horizontalen numerischen Blöcken Die Methode besteht darin, 4 -mal 320 Bytes zu extrahieren, um 30 Bytes an ADOS -Objekte zu schreiben und dann Bilddaten zu extrahieren, die die zweite Zeile verändern. 30 Bytes sind auf das Endetikett mit einer Reihe von 00 00 in BMP zurückzuführen. für i = 0 bis 9 Schritt 1 für J = 0 bis 3 Ados1.position = i*32 J*320 Ados.positation = pos 30*ji*120 Ados.write ados1.read (30) nächste nächste Ados.positation = 0 Response.binaryWrite direkt sendet Bilddaten an den Client Antwort.ContentType = "Bild/BMP" Response.binarywrite ados.read () ADOS.CLOSE: Setzen Sie ADOS = nichts ADOS1.CLOSE: Setzen Sie ADOS1 = Nichts Endfunktion |