动网论坛验证码改进:加法验证码(ASPJpeg版) - ASP教程
发布时间:2016-10-10 18:10:33  所属栏目:Asp教程  来源:站长网 
            导读:很多站长都为论坛里太多的垃圾广告抓狂,本程序就是为了对付论坛垃圾广告群发器的。 将验证码改为加法运算,比如验证码显示25+64等于?,那么输入91就能通过验证。 来看看效果图对比:字符验证码: 加法验证码: 优点: ①与纯字符验证码相比,本程序效防止
                
                
                
            | 很多站长都为论坛里太多的垃圾广告抓狂,本程序就是为了对付论坛垃圾广告群发器的。 将验证码改为加法运算,比如验证码显示“25+64等于?”,那么输入“91”就能通过验证。 来看看效果图对比:字符验证码: 优点: ①与纯字符验证码相比,本程序效防止了绝大部分(99%以上)广告机的自动识别。即使是中文验证码, 也能被市面上的部分广告机识别。 ②与中文验证码相比,避免了用户输入用户名密码验证码的时候需要切换输入法的麻烦。 有兴趣的朋友,还可以扩展为其他的运算,比如乘法,减法,乘方等。 使用方法:将以下代码保存为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 = Nothing
End Sub
%>(编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 
站长推荐
            
        热点阅读
            
 → 加法验证码:
 → 加法验证码:
![Asp.net 连接MySQL的实现代码[]](/uploads/allimg/c210711/16259C45Bc20-14512.gif)