ASP中使用圖片驗(yàn)證碼的方法分享
本文提供給大家分享學(xué)習(xí)的是關(guān)于ASP中使用圖片驗(yàn)證碼的方法,希望對(duì)各位能夠有所幫助。
現(xiàn)在許多網(wǎng)站的登陸都需要輸入驗(yàn)證碼,驗(yàn)證碼一般都是以圖片的形式顯示的。這樣一來(lái),能提高登陸的安全性,防止暴力猜解密碼。為何要用圖片顯示驗(yàn)證碼?試想,如果只是生成文本的驗(yàn)證碼,破解人可以利用類似于小偷的技術(shù),先把你這個(gè)頁(yè)面讀取,然后分析出驗(yàn)證碼,最后進(jìn)行暴力猜解。這樣的話,驗(yàn)證碼就沒有任何實(shí)際意義了。廢話少說(shuō),下面我就開始說(shuō)一說(shuō)怎樣實(shí)現(xiàn)asp中顯示圖片驗(yàn)證碼。
要實(shí)現(xiàn)asp中顯示圖片驗(yàn)證碼,首先需要以下三個(gè)文件:
GetCode.asp (用于生成圖片驗(yàn)證碼)
head.fix (圖片頭)
body.fix (圖片主體)
你也許會(huì)問(wèn),這些文件我從哪里可以得到呢?不用著急,這些文件在dvbbs7.0里面有。我也是在研究了dvbbs7.0里面的驗(yàn)證碼之后才學(xué)會(huì)如何使用圖片驗(yàn)證碼的。
首先看getcode.asp文件,里面有幾行是這樣的:
Ados.LoadFromFile(Server.mappath("body.Fix"))
Ados1.write Ados.read(1280)
For i=0 To 3
Ados.Position=(9-zimg(i))*320
Ados1.Position=i*320
Ados1.write ados.read(320)
Next
Ados.LoadFromFile(Server.mappath("head.fix"))
看到body.fix和head.fix了嗎?這里指的是他們與getcode.asp的相對(duì)位置。如果他們?nèi)齻(gè)文件在一個(gè)目錄里面,就按照以上的寫法就可以了。如果不是,就需要寫出他倆與getcode.asp的相對(duì)位置。比如:如果getcode.asp在根目錄下,body.fix&head.fix在根目錄下的test文件夾下,那么,上面的代碼就需改為:
Ados.LoadFromFile(Server.mappath("test/body.Fix"))
Ados1.write Ados.read(1280)
For i=0 To 3
Ados.Position=(9-zimg(i))*320
Ados1.Position=i*320
Ados1.write ados.read(320)
Next
Ados.LoadFromFile(Server.mappath("test/head.fix"))
這樣,才能保證圖片顯示的正常。
如何調(diào)用?
很簡(jiǎn)單,只需要這樣:
<img src=getcode.asp border=0>
即可。
每當(dāng)在調(diào)用getcode.asp之后,會(huì)自動(dòng)生成一個(gè)session,這個(gè)session存儲(chǔ)著和驗(yàn)證圖片上顯示的一樣的四位數(shù)字。你只需把接收到的驗(yàn)證碼和這個(gè)session比較,然后判斷驗(yàn)證碼是否輸入正確。當(dāng)然,最好像這樣:
If Cstr(Trim(接收的變量名))=Cstr(Session("GetCode")) Then
Response.Write ("OK!")
Else
Response.Write ("No!")
End If