Saya melihat metode retak kekerasan di internet. Halaman akan dilarang mengirimkan pengiriman eksternal.
File ASP: Code.asp
File Data: body.fix, head.fix
Penggunaan: <img src = http://blog.netbei.com/code.asp>
Response.buffer = true
NumCode
Fungsi numcode ()
Response.expires = -1
Response.addheader Pragma, tanpa cache
Response.adheader cache-clm, tanpa cache
Redup znum, i, j
Dim Ados, ADOS1
Mengacak timeer
Menghasilkan empat digit acak:
znum = cint (8999*rnd 1000)
Lulus ke sesi
Sesi (getCode) = znum
Loop untuk menempatkan nomor acak ke dalam array 3 Penyelesaian 3, yang nyaman untuk menyediakan transformasi array berikutnya
redup zimg (3), nstr
Nstr = cstr (znum)
Untuk i = 0 hingga 3
zimg (i) = cint (mid (nstr, i 1,1)))
Berikutnya
redup pos
'Tentukan dua objek biner ADODB.Stream, untuk penggunaan operasi data gambar:
Setel ados = server.CreateObject (adodb.stream)
Ados.mode = 3
Ados.type = 1
Ados.open
Setel ados1 = server.createObject (adodb.stream)
Ados1.mode = 3
ADOS1.Type = 1
Ados1.open
'Muat 0 ~ 9 Data Digital 10x100, Data Array GBR, masing -masing 320 byte, 10 angka 3200byte
'Bgr satu titik, 10x10 poin angka, satu poin tiga byte (biner 8 -bit, hexadecimal 00 ~ ff)
'Garis 10 poin 30 byte garis berakhir 00 00 00 dua -byte 32 byte, jadi 10x100 kurang dari gambar panjang, setiap angka 10x10 adalah 320 byte
'Mereka yang tumbuh lebih besar dari lebar, tidak ada cara untuk mengakhiri tanda 0000, itu adalah 300 byte secara langsung
Ini adalah data BMP 24bit.
'Sedangkan untuk kepala, itu juga sangat sederhana, termasuk panjang dan lebar, gambar mulai menandai dan sebagainya
Ados.loadFromFile (server.mappath (body.fix))
Ados1.write ados.read (1280)
'Loop pertama, dan empat angka yang sesuai diekstraksi dari jumlah angka acak yang dihasilkan dari 10x100
Tapi array nomor vertikal
untuk i = 0 hingga 3
Ados.position = (9-zimg (i))*320
Ados1.position = i*320
Ados1.write ados.read (320)
Berikutnya
'Hapus data ADO yang telah digunakan, dan sesuaikan kepala gambar baru 54 byte dari file header
Ados.loadFromFile (server.mappath (head.fix))
POS = lenb (ados.read ())
Ados.positation = pos 'Tentukan posisi POS, Anda dapat menambahkan data grafis ke posisi 54 byte
Yang kedua untuk loop, jumlah jumlah angka, dari blok vertikal ke blok numerik horizontal
Metode ini adalah mengekstrak 4 kali 320 byte untuk menulis 30 byte ke objek ADOS, dan kemudian mengekstrak data gambar yang menggeser baris kedua.
30 byte disebabkan oleh label akhir dengan baris 00 00 di BMP.
untuk i = 0 hingga 9 langkah 1
untuk j = 0 hingga 3
Ados1.position = i*32 j*320
Ados.positation = pos 30*ji*120
Ados.write ados1.read (30)
Berikutnya
Berikutnya
Ados.positation = 0
Response.binarywrite langsung mengirim data gambar ke klien
Response.contentType = gambar/BMP
Response.binarywrite ados.read ()
Ados.close: atur ados = tidak ada
Ados1.close: atur ados1 = tidak ada
Reprint fungsi akhir, harap tunjukkan dari IM286.com yang sudah ketinggalan zaman, alamat posting ini: http://www.im286.com/viewthread.php?
Untuk memahami kode -kode ini, terutama untuk memahami objek data biner di ASP, Adodb.stream! Program ini terutama menggunakan ADODB.Stream. Belum ada mesin identifikasi yang baik. Identifikasi 4321 hingga 89910, sehingga kode gambar masih lebih aman.
Saya melihat metode retak kekerasan di internet. Halaman akan dilarang mengirimkan pengiriman eksternal.
File ASP: Code.asp
File Data: body.fix, head.fix
Penggunaan: <img src = "http://blog.netbei.com/code.asp" >>
Response.buffer = true
NumCode
Fungsi numcode ()
Response.expires = -1
Response.addheader "pragma", "no-cache"
Response.addheader "cache-clm", "no-cache"
Redup znum, i, j
Dim Ados, ADOS1
Mengacak timeer
Menghasilkan empat digit acak:
znum = cint (8999*rnd 1000)
Lulus ke sesi
Sesi ("getCode") = znum
Loop untuk menempatkan nomor acak ke dalam array 3 Penyelesaian 3, yang nyaman untuk menyediakan transformasi array berikutnya
redup zimg (3), nstr
Nstr = cstr (znum)
Untuk i = 0 hingga 3