很多站長都為論壇裡太多的垃圾廣告抓狂,本程式就是為了對付論壇垃圾廣告群發器的。
將驗證碼改為加法運算,比如驗證碼顯示“25+64等於?”,那麼輸入“91”就能通過驗證。
來看看效果圖對比:字元驗證碼: → 加法驗證碼:
優點:
①與純字元驗證碼相比,本程式效防止了絕大部分(99%以上)廣告機的自動識別。即使是中文驗證碼, 也能被市面上的部分廣告機識別。
②與中文驗證碼相比,避免了使用者輸入使用者名稱密碼驗證碼的時候需要切換IME的麻煩。
有興趣的朋友,還可以擴充為其他的運算,比如乘法,減法,乘方等。
使用方法:將以下代碼儲存為Dv_GetCode.asp檔案,替換動網論壇的該檔案。背景色、字型顏色可在 代碼中修改。
說明:該程式需要網站空間支援ASPJpeg組件、楷體_GB2312字型。
後續我會發布一個不需要組件及字型支援的版本,有興趣者請關注我的部落格。
<%'============================================================================='動網論壇加法驗證碼(ASPJpeg版)'作者:cuixiping'部落格(CSDN):http://blog.csdn.net/cuixiping/'部落格(部落格園):http://www.cnblogs.com/cuixiping/'日期:2008年11月'產生100x20的jpeg圖片驗證碼,內容類別似“25+64等於?”'需要網站空間支援ASPJpeg組件(Persits.Jpeg)。'如果伺服器沒有“楷體_GB2312”字型,請修改為其他字型並調整字元位置。'使用方法:將該代碼替換動網論壇的Dv_GetCode.asp檔案中的內容,檔案首尾不要留空行。'=============================================================================Const FontColor = &H000000 ' 字型顏色Const BgColor = &HFFCCFF ' 背景顏色Call CreatValidCode("GetCode")Sub CreatValidCode(pSN) Dim x, Jpeg Randomize x = Array(1+Int(Rnd()*9), Int(Rnd()*10), 1+Int(Rnd()*9), Int(Rnd()*10), 0, 0, "+") x(4) = x(0)*10 + x(1) x(5) = x(2)*10 + x(3) 'Session(pSN) = CStr(Eval(x(4) & x(6) & x(5))) Session(pSN) = CStr(x(4) + x(5)) Set Jpeg = Server.CreateObject("Persits.Jpeg") Jpeg.New 100,20,BgColor Jpeg.Quality=100 With Jpeg.Canvas .Font.Bold = True .Font.Size = 16 .Font.Rotation = 0 .Font.Family = "楷體_GB2312" .Font.Color = FontColor .PrintText 4, 3, CStr(x(0)) .PrintText 14, 3, CStr(x(1)) .PrintText 26, 3, x(6) .PrintText 38, 3, CStr(x(2)) .PrintText 48, 3, CStr(x(3)) .Font.Rotation = 15 .PrintText 55, 3, "等" .PrintText 70, 3, "於" .PrintText 85, 3, "?" End With '禁止緩衝 Response.ContentType = "image/jpeg" Response.Expires = -9999 Response.AddHeader "pragma", "no-cache" Response.AddHeader "cache-ctrol", "no-cache" Response.AddHeader "Content-Disposition","inline; filename=vcode.jpg" Jpeg.SendBinary Jpeg.Close Set Jpeg = NothingEnd Sub%>