驗證碼 作者:Loster(OICQ:181306) 如果轉載,請勿去掉此行,謝謝。
現在許多網站的登陸都需要輸入驗證碼,驗證碼一般都是以圖片的形式顯示的。這樣一來,能提高登陸的安全性,防止暴力猜解密碼。為何要用圖片顯示驗證碼?試想,如果只是產生文本的驗證碼,破解人可以利用類似於小偷的技術,先把你這個頁面讀取,然後分析出驗證碼,最後進行暴力猜解。這樣的話,驗證碼就沒有任何實際意義了。廢話少說,下面我就開始說一說怎樣實現asp中顯示圖片驗證碼。
要實現asp中顯示圖片驗證碼,首先需要以下三個檔案:
GetCode.asp (用於產生圖片驗證碼)
head.fix (圖標題)
body.fix (圖片主體)
你也許會問,這些檔案我從哪裡可以得到呢?不用著急,這些檔案在dvbbs7.0裡面有。我也是在研究了dvbbs7.0裡面的驗證碼之後才學會如何使用圖片驗證碼的。
首先看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的相對位置。如果他們三個檔案在一個目錄裡面,就按照以上的寫法就可以了。如果不是,就需要寫出他倆與getcode.asp的相對位置。比如:如果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"))
這樣,才能保證圖片顯示的正常。
如何調用?
很簡單,只需要這樣:
<img src=getcode.asp border=0>
即可。
每當在調用getcode.asp之後,會自動產生一個session,這個session儲存著和驗證圖片上顯示的一樣的四位元字。你只需把接收到的驗證碼和這個session比較,然後判斷驗證碼是否輸入正確。當然,最好像這樣:
If Cstr(Trim(接收的變數名))=Cstr(Session("GetCode")) Then
Response.Write ("OK!")
Else
Response.Write ("No!")
End If
呵呵,至此,囉嗦完畢。希望你在看完本文後有所啟發。當然,本人水平有限,文中難免出現錯誤,歡迎大家指正。
有人可能要問,圖片能不能修改啊,答案是肯定的,網上有相關文章,你可以去查查。
附:http://www.loster.net/aspfile/getcode.rar getcode.asp,head.fix,body.fix檔案壓縮包