当前位置: 首页 > 图文教程 > 网络编程 > ASP > 动网论坛验证码改进 加法验证码(ASPJpeg版)

ASP
ASP 编程中20个非常有用的例子(一)
ASP 编程中20个非常有用的例子(二)
ASP基础教程:ADO存取数据库时如何分页显示
ASP基础教程:其它的ASP常用组件
ASP基础教程:学习ASP中子程序的应用
ASP基础教程之ASP程序对Cookie的处理
ASP基础教程之实例学习ASP Response 对象
ASP基础教程之ASP AdRotator 组件的使用
ADO初学者教程:ADO 通过GetString()加速脚本
初学者来认识OLEDB和ODBC的区别
ASP常见数学函数 Abs Atn Cos 等详细详解
VBScript新手入门初学教程:VBScript简介
有用的无声递交表单的客户端函数
Windows 2003 安装设置iis
ASP技巧实例:几行代码解决防止表单重复提交
ASP读sql数据时出现乱码问题的解决方法
ASP技巧实例:使用ASP记录在线用户的数量
ASP技巧实例:关于对表单操作的程序
ASP技巧实例:ASP实现最简洁的多重查询的解决方案
ASP实例:利用缓存提高数据显示效率

动网论坛验证码改进 加法验证码(ASPJpeg版)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 32 ::
收藏到网摘: n/a

很多站长都为论坛里太多的垃圾广告抓狂,本程序就是为了对付论坛垃圾广告群发器的。 将验证码改为加法运算,比如验证码显示“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等于?”
'/upload/tech/20091012/20091012012648_4e4b5fbbbb602b6d35bea8460aa8f8e5.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("/upload/tech/20091012/20091012012649_07a96b1f61097ccb54be14d6a47439b0.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
%>