Ada banyak formulir kode verifikasi gambar di internet. Kode verifikasi yang tidak menghasilkan gambar memiliki kemampuan pertahanan anti-retak yang sangat rentan; Beberapa orang secara langsung menampilkan nomor spesifik dalam kode sumber web, dan kemudian meminta pengunjung untuk memasukkan jumlah tambahan; Seperti 3+5 =, ada beberapa fitur baru dari kode verifikasi seperti itu, tetapi sayangnya, mereka tidak memiliki perlindungan sama sekali.
Flymorn meningkatkan kebaruan di atas, secara langsung menggunakan program ASP untuk menghasilkan format gambar BMP, dan menyimpan jumlah angka ke dalam sesi untuk meningkatkan ambang batas untuk retak; Orang tanpa pengetahuan grafis dan ikonografi tidak dapat memecahkannya. Kodenya adalah sebagai berikut:
Salinan kode adalah sebagai berikut:
<%
Response.buffer = true
Response.ExpiresAbsolute = Now ()-1
Response.expires = 0
Response.cachecontrol = "no-cache"
Response.contentType = "Image/BMP"
Callcom_createValidCode ()
Subcom_createValidCode ()
Mengacak
Dimi, II, III
Constcamount = 10 'jumlah nilai
Constccode = "0123456789" 'Rentang numerik
Dimvcolordata (2)
vcolordata (0) = "" 'Dot hitam harus dikonversi menjadi titik warna, tidak ditentukan untuk saat ini
vcolordata (1) = chrb (255) & chrb (255) & chrb (255) 'titik putih
DIMVCODE (4), VCODES 'menghasilkan satu set angka sewenang -wenang
Fori = 0to3
vcode (i) = int (rnd*camount) 'Array sama dengan jumlah total*nomor acak
ifi = 1thenVcode (i) = "11" 'Digit kedua adalah +
ifi = 3thenVcode (i) = "10" 'Digit keempat adalah =
vcodes = vcodes & mid (ccode, vcode (i) +1,1) 'string sama dengan string plus nilai selanjutnya
Berikutnya
session ("checkCode") = int (mid (vcodes, 1,1))+int (mid (vcodes, 2,1)) 'Hitung jumlah dan tetapkan nilai ke sesi
Dimvnumberberdata (36)
vnumberberdata (0) =
"11100001111101111011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" ""
vnumberberdata (1) =
"111101111111011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111001111" "
vnumberberdata (2) =
"11100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000011111
vnumberberdata (3) =
"1110000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.00011111111111111111111111111111111111111
vnumberberdata (4) =
"111111111111111111111111111111111111111111111111111111111111111111111111110000011111111111111111111111111000011" "
vnumberberdata (5) =
"11000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" "