在网页中插入简单验证码 ASP

2025-10-16 15:17:43

1、把下面的代码另存为code.asp文件

<%

 Sub ImageValidCode(sName)    

 Response.Expires = -1     

 Response.AddHeader "Pragma","no-cache"    

 Response.AddHeader "cache-ctrol","no-cache"    

 Response.ContentType = "Image/BMP"    

 Randomize    

 Dim i, ii, iii    

 Const cOdds = 2 '杂点出现的机率    

 Const cAmount = 36 ' 文字数量    

 Const cCode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" '颜色的数据(字符,背景)    

 Dim vColorData(1)    

 vColorData(0) = ChrB(255) & ChrB(000) & ChrB(000) '字符颜色    

 vColorData(1) = ChrB(255) & ChrB(255) & ChrB(255) '背景颜色    

 Dim vCode(4), vCodes    

 For i=0 To 3    

 vCode(i) = Int(Rnd * cAmount)    

 vCodes = vCodes & Mid(cCode, vCode(i)+1, 1)    

 Next    

 Session.Value(sName) = vCodes'记录入Session     

 Dim vNumberData(35)    

 vNumberData(0) = "1110000111110111101111011110111101001011110100101111010010111101001011110111101111011110111110000111"    

 vNumberData(1) = "1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111100000111"    

 vNumberData(2) = "1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111100000011"    

 vNumberData(3) = "1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111110000111"    

 vNumberData(4) = "1111101111111110111111110011111110101111110110111111011011111100000011111110111111111011111111000011"    

 vNumberData(5) = "1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111"    

 vNumberData(6) = "1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111"    

 vNumberData(7) = "1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111111011111"    

 vNumberData(8) = "1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111110000111"    

 vNumberData(9) = "1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111110001111"    

 vNumberData(10) = "1111011111111101111111101011111110101111111010111111101011111100000111110111011111011101111000100011"    

 vNumberData(11) = "1000000111110111101111011110111101110111110000111111011101111101111011110111101111011110111000000111"    

 vNumberData(12) = "1110000011110111101110111110111011111111101111111110111111111011111111101111101111011101111110001111"    

 vNumberData(13) = "1000001111110111011111011110111101111011110111101111011110111101111011110111101111011101111000001111"    

 vNumberData(14) = "1000000111110111101111011011111101101111110000111111011011111101101111110111111111011110111000000111"    

 vNumberData(15) = "1000000111110111101111011011111101101111110000111111011011111101101111110111111111011111111000111111"    

 vNumberData(16) = "1110000111110111011110111101111011111111101111111110111111111011100011101111011111011101111110001111"    

 vNumberData(17) = "1000100011110111011111011101111101110111110000011111011101111101110111110111011111011101111000100011"    

 vNumberData(18) = "1100000111111101111111110111111111011111111101111111110111111111011111111101111111110111111100000111"    

 vNumberData(19) = "1110000011111110111111111011111111101111111110111111111011111111101111111110111110111011111000011111"    

 vNumberData(20) = "1000100011110111011111011011111101011111110001111111010111111101101111110110111111011101111000100011"    

 vNumberData(21) = "1000111111110111111111011111111101111111110111111111011111111101111111110111111111011110111000000011"    

 vNumberData(22) = "1000100011110010011111001001111100100111110101011111010101111101010111110101011111010101111001010011"    

 vNumberData(23) = "1000100011110011011111001101111101010111110101011111010101111101100111110110011111011001111000110111"    

 vNumberData(24) = "1110001111110111011110111110111011111011101111101110111110111011111011101111101111011101111110001111"    

 vNumberData(25) = "1000000111110111101111011110111101111011110000011111011111111101111111110111111111011111111000111111"    

 vNumberData(26) = "1110001111110111011110111110111011111011101111101110111110111011111011101001101111011001111110001011"    

 vNumberData(27) = "1000001111110111011111011101111101110111110000111111010111111101101111110110111111011101111000110011"    

 vNumberData(28) = "1110000011110111101111011110111101111111111001111111111001111111111011110111101111011110111100000111"    

 vNumberData(29) = "1000000011101101101111110111111111011111111101111111110111111111011111111101111111110111111110001111"    

 vNumberData(30) = "1000100011110111011111011101111101110111110111011111011101111101110111110111011111011101111110001111"    

 vNumberData(31) = "1000100011110111011111011101111101110111111010111111101011111110101111111010111111110111111111011111"    

 vNumberData(32) = "1001010011110101011111010101111101010111110101011111001001111110101111111010111111101011111110101111"    

 vNumberData(33) = "1000100011110111011111101011111110101111111101111111110111111110101111111010111111011101111000100011"    

 vNumberData(34) = "1000100011110111011111011101111110101111111010111111110111111111011111111101111111110111111110001111"    

 vNumberData(35) = "1100000011110111011111111101111111101111111110111111110111111111011111111011111111101110111100000011"    

  ' 输出图像文件头    

 Response.BinaryWrite ChrB(66) & ChrB(77) & ChrB(230) & ChrB(4) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0)    

  ' 输出图像信息头    

 Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(176) & ChrB(4) & ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)    

 For i=9 To 0 Step -1 ' 历经所有行    

 For ii=0 To 3 ' 历经所有字    

 For iii=1 To 10 ' 历经所有像素    

 If Rnd * 99 + 1 < cOdds Then ' 随机生成杂点    

 Response.BinaryWrite vColorData(0)    

 Else    

 Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i*10+iii, 1))    

 End If    

 Next    

 Next    

 Next    

 End Sub    

  

Call ImageValidCode("GetCode")    

%>

2、在需要调用验证码的地方,插入下面的代码,就会显示验证码

<img src="code.asp" />

在网页中插入简单验证码 ASP

3、有时生成的验证码图片看不清楚,需要增加一个点击验证码刷新的功能,代码如下图一:

.

为了提示用户,可以加上文字提示,修改鼠标指向验证码时的形状,代码如下图二:

.

完整的例子放在百度网盘中,需要的请发邮件到 xdhy_dn@foxmail.com

主题写 “百度经验”。自动回复下载地址。

注:在运行例子前需要配置好ASP的运行环境

在网页中插入简单验证码 ASP

在网页中插入简单验证码 ASP

在网页中插入简单验证码 ASP

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢