这篇文章主要介绍了ASP实现加法验证码,是在原来的验证码基础上进行创新,将验证码改为加法运算,感兴趣的小伙伴们可以参考一下
将验证码改为加法运算,比如验证码显示25+64等于?,那么输入91就能通过验证。
来看看效果图对比:字符验证码:→ 加法验证码:
优点:
①与纯字符验证码相比,本程序效防止了绝大部分(99%以上)广告机的自动识别。即使是中文验证码, 也能被市面上的部分广告机识别。
②与中文验证码相比,避免了用户输入用户名密码验证码的时候需要切换输入法的麻烦。
说明:该程序需要网站空间支持ASPJpeg组件、楷体_GB2312字体。
代码如下:
?
- <%
- ConstFontColor=&H000000'字体颜色
- ConstBgColor=&HFFCCFF'背景颜色
- CallCreatValidCode(GetCode)
- SubCreatValidCode(pSN)
- Dimx,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))
- SetJpeg=Server.CreateObject(Persits.Jpeg)
- Jpeg.New100,20,BgColor
- Jpeg.Quality=100
- WithJpeg.Canvas
- .Font.Bold=True
- .Font.Size=16
- .Font.Rotation=0
- .Font.Family=楷体_GB2312
- .Font.Color=FontColor
- .PrintText4,3,CStr(x(0))
- .PrintText14,3,CStr(x(1))
- .PrintText26,3,x(6)
- .PrintText38,3,CStr(x(2))
- .PrintText48,3,CStr(x(3))
- .Font.Rotation=15
- .PrintText55,3,等
- .PrintText70,3,于
- .PrintText85,3,?
- EndWith
- '禁止缓存
- Response.ContentType=image/jpeg
- Response.Expires=-9999
- Response.AddHeaderpragma,no-cache
- Response.AddHeadercache-ctrol,no-cache
- Response.AddHeaderContent-Disposition,inline;filename=vcode.jpg
- Jpeg.SendBinary
- Jpeg.Close
- SetJpeg=Nothing
- EndSub
- %>