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

来源:asp之家 时间:2011-04-10 10:44:00 

来看看效果图对比:字符验证码: → 加法验证码:

优点:

①与纯字符验证码相比,本程序效防止了绝大部分(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 
%>

标签:ASPJpeg,加法,验证码
0
投稿

猜你喜欢

  • 简单代码实现可输入的下拉框功能(select)

    2008-10-20 19:52:00
  • 解析arp病毒背后利用的Javascript技术

    2007-08-08 09:55:00
  • 流行WEB开发语言比较之ASP篇

    2007-12-23 17:23:00
  • 解决asp中ADODB.Stream 0x800A0C93 错误

    2008-01-08 19:28:00
  • 利用global.asa计划执行程序

    2008-03-05 12:49:00
  • ASP 关于动态数据显示页面得锚点

    2007-11-04 20:28:00
  • 如何正确合理的建立MYSQL数据库索引

    2010-10-25 20:08:00
  • 提升网站可用性的3个忠告

    2008-01-31 13:48:00
  • xhtml+css页面制作过程中问题的解决方案

    2008-08-05 18:00:00
  • ASP利用 xmlhttp 分块上传文件

    2007-11-01 22:55:00
  • 交互设计实用指南系列(2) –可及

    2010-01-21 12:48:00
  • 内部系统是否也需要用户体验设计?

    2010-11-30 21:47:00
  • 如何让IIS支持wap,让ASP生成wml

    2008-05-18 13:42:00
  • Asp 日期格式化问题

    2011-03-31 10:47:00
  • ACCESS模糊查询出现"内存溢出"

    2009-08-13 14:25:00
  • 如何把Recordset转换成彩色的XML文件?

    2009-11-02 20:22:00
  • oracle 日期函数集合(集中版本)第1/2页

    2009-06-19 17:23:00
  • Windows mysql命令行导入 .sql文件

    2010-12-03 16:12:00
  • 后工业时代的后规范思考

    2009-06-03 20:30:00
  • ASP万用分页程序

    2007-09-21 12:45:00
  • asp之家 网络编程 m.aspxhome.com