โปรแกรมนี้จะสร้างตัวเลขสุ่มก่อน จากนั้นจึงแปลงตามตัวเลขสุ่มที่สร้างขึ้นเป็นเนื้อหาของรูปภาพ XBM และสุดท้ายจะแสดงรูปภาพ ในระหว่างการตรวจสอบ หมายเลขอินพุตจะได้รับและเปรียบเทียบกับเซสชัน ("validatecode") หากเท่ากัน ให้ผ่านการยืนยัน (โปรดทราบว่าประเภทของข้อมูลที่เปรียบเทียบทั้งสองนั้นสอดคล้องกัน)
จะแสดงภาพที่ถูกสร้างขึ้นได้อย่างไร? <img src="xbm.asp"></img>
สำหรับข้อมูลเกี่ยวกับรูปแบบของกราฟ XBM ดูที่นี่
http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39134972,00.htm
รหัสของ xbm.asp มีดังนี้:
<!--#include file="numcode.asp"-->
-
'เปิดการบัฟเฟอร์
Response.Buffer = จริง
พร้อมการตอบรับ
.หมดอายุ = -1
.AddHeader "Pragma", "ไม่มีแคช"
.AddHeader "cache-ctrol", "ไม่มีแคช"
ปิดท้ายด้วย
ติ่มนัม
สุ่ม
num = Int(7999 * Rnd + 2000)
เซสชัน ("validateCode") = num
Dim Image
ความกว้าง ความสูง สลัว
ดิจิตัลสลัว
ความยาวสลัว
เรียงลำดับแบบติ่มซำ
htK
ความยาว = 4
hc = chr(13) & chr(10)
Redim sort(Length)
digital = ""
สำหรับ I = 1 ถึงความยาว - Len (ตัวเลข)
ดิจิตอล = ดิจิตอล & "0"
ต่อไป
สำหรับฉัน = 1 ถึงเลน (หมายเลข)
ดิจิตอล = ดิจิตอล & กลาง (หมายเลข, I, 1)
ต่อไป
สำหรับ I = 1 ถึง Len (ดิจิทัล)
เรียงลำดับ(I) = กลาง(ดิจิทัล, I, 1)
ต่อไป
ความกว้าง = 8 * Len (ดิจิตอล)
ความสูง = 10
Response.ContentType = "image/x-xbitmap"
Image = "#define counter_width " & ความกว้าง & hc
รูปภาพ = รูปภาพ & "#define counter_height " & ความสูง & hc
Image = Image & "char counter_bits ที่ไม่ได้ลงชื่อแบบคงที่ [] = {" & hc
สำหรับ I = 1 ถึงความสูง
สำหรับ J = 1 ถึงความยาว
รูปภาพ = รูปภาพ & a (เรียงลำดับ (J), I) & ","
ต่อไป
ถัดไป
= ซ้าย (รูปภาพ, Len (รูปภาพ) - 1)
Image = Image & "};" & hc
Response. เขียนรูปภาพ
%>
รหัสของ Numcode.asp เป็นดังนี้:
รหัสโปรแกรม:
-
หรี่(10,10)
a(0,1) = "0x3c" 'หมายเลข 0
ก(0,2) = "0x66"
ก(0,3) = "0xc3"
ก(0,4) = "0xc3"
ก(0,5) = "0xc3"
ก(0,6) = "0xc3"
ก(0,7) = "0xc3"
ก(0,8) = "0xc3"
ก(0,9) = "0x66"
ก(0,10)= "0x3c"
a(1,1) = "0x18" 'หมายเลข 1
ก(1,2) = "0x1c"
ก(1,3) = "0x18"
ก(1,4) = "0x18"
ก(1,5) = "0x18"
ก(1,6) = "0x18"
ก(1,7) = "0x18"
ก(1,8) = "0x18"
ก(1,9) = "0x18"
ก(0,10)= "0x7e"
ก(2,1) = "0x3c" 'หมายเลข 2
ก(2,2) = "0x66"
ก(2,3) = "0x60"
ก(2,4) = "0x60"
ก(2,5) = "0x30"
ก(2,6) = "0x18"
ก(2,7) = "0x0c"
ก(2,8) = "0x06"
ก(2,9) = "0x06"
ก(2,10)= "0x7e"
a(3,1) = "0x3c" 'หมายเลข 3
ก(3,2) = "0x66"
ก(3,3) = "0xc0"
ก(3,4) = "0x60"
ก(3,5) = "0x1c"
ก(3,6) = "0x60"
ก(3,7) = "0xc0"
ก(3,8) = "0xc0"
ก(3,9) = "0x66"
ก(3,10)= "0x38"
ก(4,1) = "0x38" 'หมายเลข 4
ก(4,2) = "0x3c"
ก(4,3) = "0x36"
ก(4,4) = "0x33"
ก(4,5) = "0x33"
ก(4,6) = "0x33"
ก(4,7) = "0xff"
ก(4,8) = "0x30"
ก(4,9) = "0x30"
ก(4,10)= "0xfe"
ก(5,1) = "0xfe" 'หมายเลข 5
ก(5,2) = "0xfe"
ก(5,3) = "0x06"
ก(5,4) = "0x06"
ก(5,5) = "0x3e"
ก(5,6) = "0x60"
ก(5,7) = "0xc0"
ก(5,8) = "0xc3"
ก(5,9) = "0x66"
ก(5,10)= "0x3c"
ก(6,1) = "0x60" 'หมายเลข 6
ก(6,2) = "0x30"
ก(6,3) = "0x18"
ก(6,4) = "0x0c"
ก(6,5) = "0x3e"
ก(6,6) = "0x63"
ก(6,7) = "0xc3"
ก(6,8) = "0xc3"
ก(6,9) = "0x66"
ก(6,10)="0x3c"
a(7,1) = "0xff" 'หมายเลข 7
ก(7,2) = "0xc0"
ก(7,3) = "0x60"
ก(7,4) = "0x30"
ก(7,5) = "0x18"
ก(7,6) = "0x18"
ก(7,7) = "0x18"
ก(7,8) = "0x18"
ก(7,9) = "0x18"
ก(7,10)= "0x18"
ก(8,1) = "0x3c" 'หมายเลข 8
ก(8,2) = "0x66"
ก(8,3) = "0xc3"
ก(8,4) = "0x66"
ก(8,5) = "0x3c"
ก(8,6) = "0x66"
ก(8,7) = "0xc3"
ก(8,8) = "0xc3"
ก(8,9) = "0x66"
ก(8,10)= "0x3c"
ก(9,1) = "0x3c" 'หมายเลข 9
ก(9,2) = "0x66"
ก(9,3) = "0xc3"
ก(9,4) = "0xc3"
ก(9,5) = "0x66"
ก(9,6) = "0x3c"
ก(9,7) = "0x18"
ก(9,8) = "0x0c"
ก(9,9) = "0x06"
ก(9,10)= "0x03"
-