首页 > 编程 > ASP > 正文

ASP实现加法验证码

2024-05-04 11:10:10
字体:
来源:转载
供稿:网友
这篇文章主要介绍了ASP实现加法验证码,是在原来的验证码基础上进行创新,将验证码改为加法运算,感兴趣的小伙伴们可以参考一下
 

将验证码改为加法运算,比如验证码显示“25+64等于?”,那么输入“91”就能通过验证。
来看看效果图对比:字符验证码:ASP实现加法验证码 → 加法验证码:ASP实现加法验证码
优点:
①与纯字符验证码相比,本程序效防止了绝大部分(99%以上)广告机的自动识别。即使是中文验证码, 也能被市面上的部分广告机识别。
②与中文验证码相比,避免了用户输入用户名密码验证码的时候需要切换输入法的麻烦。
说明:该程序需要网站空间支持ASPJpeg组件、楷体_GB2312字体。
代码如下:
 

  1. <% 
  2. Const FontColor = &H000000 ' 字体颜色 
  3. Const BgColor = &HFFCCFF ' 背景颜色 
  4. Call CreatValidCode("GetCode"
  5. Sub CreatValidCode(pSN) 
  6.   Dim x, Jpeg 
  7.   Randomize 
  8.   x = Array(1+Int(Rnd()*9), Int(Rnd()*10), 1+Int(Rnd()*9), Int(Rnd()*10), 0, 0, "+"
  9.   x(4) = x(0)*10 + x(1) 
  10.   x(5) = x(2)*10 + x(3) 
  11.   'Session(pSN) = CStr(Eval(x(4) & x(6) & x(5))) 
  12.   Session(pSN) = CStr(x(4) + x(5)) 
  13.   Set Jpeg = Server.CreateObject("Persits.Jpeg"
  14.   Jpeg.New 100,20,BgColor 
  15.   Jpeg.Quality=100 
  16.   With Jpeg.Canvas 
  17.     .Font.Bold = True 
  18.     .Font.Size = 16 
  19.     .Font.Rotation = 0 
  20.     .Font.Family = "楷体_GB2312" 
  21.     .Font.Color = FontColor 
  22.     .PrintText 4, 3, CStr(x(0)) 
  23.     .PrintText 14, 3, CStr(x(1)) 
  24.     .PrintText 26, 3, x(6) 
  25.     .PrintText 38, 3, CStr(x(2)) 
  26.     .PrintText 48, 3, CStr(x(3)) 
  27.     .Font.Rotation = 15 
  28.     .PrintText 55, 3, "等" 
  29.     .PrintText 70, 3, "于" 
  30.     .PrintText 85, 3, "?" 
  31.   End With 
  32.   '禁止缓存 
  33.   Response.ContentType = "image/jpeg" 
  34.   Response.Expires = -9999 
  35.   Response.AddHeader "pragma""no-cache" 
  36.   Response.AddHeader "cache-ctrol""no-cache" 
  37.   Response.AddHeader "Content-Disposition","inline; filename=vcode.jpg" 
  38.   Jpeg.SendBinary 
  39.   Jpeg.Close 
  40.   Set Jpeg = Nothing 
  41. End Sub 
  42. %> 
?
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表