ASP 生成 彩色 可变长 验证码程序

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

本验证码生成程序特点如下:

一、彩色;

二、BMP 图像色深为 16 位,生成的图片体积更小;(4位长的验证码只有几百字节)

三、长度可自定义;(1位至25位可固定设置,也可以自己改成动态)

四、背景杂色深度可自定义;

具体请看代码

注:代码中并没有针对动网的 设置验证码 Session 的地方。想用的朋友自己根据需要改一下,位置就在代码中出现  Session("Num") 的那一行,改成自己需要的名称就可以了。这个验证码也可以用在任何需要验证码的地方。不用在动网论坛也可。

下面是代码部分:

<--r>Option Explicit
Response.Expires = 0
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-ctrol","no-cache"
Response.ContentType = "Image/BMP"
Randomize Timer
 

Dim Text_Data(9),Text_Len,Int_Temp(),I,j,k,Int_Temp2

''***** 参数配置区 *****

Text_Len = 4 ''验证码长度(支持1-25位)

''**********************

ReDim Int_Temp( Text_Len - 1 )

Text_Data(0)  = "00000000000001111000001100110000110111000011011100001100110000111011000011101100001100110000011110000000000000"
Text_Data(1)  = "00000000000000011000000011100000111110000000011000000001100000000110000000011000000001100000000110000000000000"
Text_Data(2)  = "00000000000001111000001100110000110011000000001100000001100000001100000001100000001100000000111111000000000000"
Text_Data(3)  = "00000000000001111000001100110000110011000000001100000011100000000011000011001100001100110000011110000000000000"
Text_Data(4)  = "00000000000001100000000110000000011011000001101100000110110000110011000011111110000000110000000011000000000000"
Text_Data(5)  = "00000000000011111100001100000000110000000011000000001111100000000011000000001100000001100000111100000000000000"
Text_Data(6)  = "00000000000000111000000011000000011000000011111000001100110000110011000011001100001100110000011110000000000000"
Text_Data(7)  = "00000000000011111100000000110000000110000000011000000011000000001100000001100000000110000000011000000000000000"
Text_Data(8)  = "00000000000001111000001100110000110011000011101100000111100000110111000011001100001100110000011110000000000000"
Text_Data(9)  = "00000000000001111000001100110000110011000011001100001100110000011111000000011000000011000000011100000000000000"

''下面随机生成各位验证码
Session("Num") = ""
For I = 0 To Text_Len - 1
   Int_Temp(I) = Int(Rnd * 10)
   Session("Num") = Session("Num") + Mid("0123456789",Int_Temp(I)+1,1)
Next

''下面输出文件头部分
Int_Temp2 = (Text_Len - 1) / 4 * 220 + ((Text_Len - 1) / 4 - (Text_Len - 1) / 4 * 4) * 44
Response.BinaryWrite ChrB(&H42) & ChrB(&H4D)
Response.BinaryWrite ChrB(((Int_Temp2 + 206) / 256 - (Int_Temp2 + 206) / 256) * 256) & ChrB((Int_Temp2 + 206) / 256)   ''特殊位
Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H76) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H28) & ChrB(0) & ChrB(0) & ChrB(0)
Response.BinaryWrite ChrB(Text_Len * 10)   ''特殊位
Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HB) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H1) & ChrB(0) & ChrB(&H4) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)
Response.BinaryWrite ChrB(((Int_Temp2 + 88) / 256 - (Int_Temp2 + 88) / 256) * 256) & ChrB((Int_Temp2 + 88) / 256)   ''特殊位

Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(16) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(16) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(&H80) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(0) & ChrB(&H80) & ChrB(0)
Response.BinaryWrite ChrB(&H80) & ChrB(&H80) & ChrB(0) & ChrB(0) & ChrB(&H80) & ChrB(&H80) & ChrB(&H80) & ChrB(0) & ChrB(&HC0) & ChrB(&HC0) & ChrB(&HC0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(&HFF) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(&HFF) & ChrB(0) & ChrB(&HFF) & ChrB(&HFF) & ChrB(0) & ChrB(0) & ChrB(&HFF) & ChrB(&HFF) & ChrB(&HFF) & ChrB(0)

''下面输出图片数据
For i = 10 to 0 Step -1
   For j = 0 to Text_Len - 1
      For k = 1 to 9 Step 2
         If Mid(Text_Data(Int_Temp(j)) ,  i * 10 + k , 1) = "0" Then Int_Temp2 = Get_BackColor() * 16 Else Int_Temp2 = Get_ForeColor() * 16
         If Mid(Text_Data(Int_Temp(j)) ,  i * 10 + k + 1 , 1) = "0" Then Int_Temp2 = Int_Temp2 + Get_BackColor() Else Int_Temp2 = Int_Temp2 + Get_ForeColor()
         Response.BinaryWrite ChrB(Int_Temp2)
      Next
   Next
   Int_Temp2 = (Text_Len / 4 - Text_Len / 4) * 4
   Select Case Int_Temp2
   Case 1
      Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0)
   Case 2
      Response.BinaryWrite ChrB(0) & ChrB(0)
   Case 3
      Response.BinaryWrite ChrB(0)
   End Select
Next

Function Get_BackColor()
''得到一个背景色
If Int(Rnd * 30) = 0 Then ''注:此处的 Rnd * 30 是决定背景杂色的多少,值越大,则杂色越少,图片越容易看清楚
   Get_BackColor = CInt(Mid("00021209",Int(Rnd * 4) * 2 + 1,2))
Else
   Get_BackColor = CInt(Mid("081515151515",Int(Rnd * 6) * 2 + 1,2))
End If
End Function

Function Get_ForeColor()
''得到一个前景色
Get_ForeColor = CInt(Mid("00021209",Int(Rnd * 4) * 2 + 1,2))
End Function

asp非常漂亮验证码 asp非常漂亮验证码! 非常适合现在使用! 漂不漂亮你看看就知道了! 立即下载

相关推荐

ASP验证码-非常优秀的ASP随机验证码

看很多人都在找asp 验证码 asp 随机验证 我收集了四个非常优秀的ASP随机验证码,非常好用,分别为: Asp纯数字随机验证码程序 (5.98 kb) Asp数字及字母组合验证码程序(5.98 kb) Asp纯字母验证码程序.zip (5.98 kb GetCode(ASP验证码生成代码) 以上源码:完全免费的传统ASP的VBScript 。 安全码是完全随机的。 动态图像处理。 没有图像文件的要求。 没有组件需要。 创建一个跨浏览器兼容的动态随机captcha图像。 您可以使用自定义调色板图像。 *用户的浏览器必须支持Cookie和session会话状态必须启用

使用ASP生成图片彩色校验码

使用ASP生成图片彩色校验码49行代码,三个文件 Asp文件:Code.Asp 数据文件:body.Fix , Head.Fix --下载:下载打包文件 用法:  代码解释: Response.buffer=true NumCode Function NumCode()  Response.Expires = -1  Response.AddHeader "Pragma",

伴老 1861

这是一个很漂亮asp验证码

这是一个很漂亮ASP验证码,希望大家喜欢,下载后可以直接使用,插入。

asp验证码代码 (带刷新)

将以下代码放到一个单独的页面checkcode.asp Option Explicit Response.buffer=true Call Com_CreatValidCode("validateCode") Sub Com_CreatValidCode(pSN) ' 禁止缓存 Response.Expires = -9999 Response.AddHeader "Prag

feiyafei2008的专栏 956

使用ASP生成任意长度彩色BMP验证码图片

%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>ASP生成BMP验证码图片 石卓林(精彩)Site URL:Http://www.camxam.comEMail:camxam@163.comQQ:383193853MSN:camxam@163.co

camxam的专栏 1247

验证码识别技术专题

原理:  获得若干验证码图片样本,按照显示每个数字的区域分割,取得数字图片的样本.         破解的时候作同样的分割,每个区域与数字图片的样本比较,确定每个区域是什么数字.  功能分析:一般校验码具有的功能:1、显示内容显示内容一般是数字或者数字+字符,还有更变态的,显示的内容是随机汉字。如何随机生成汉字,请看:《用C#生成随机中文汉字验证码的基本原理》http://wulei8

小诺的一路向北 8125

一些常见的ASP.NET验证码实现

一些常见的验证码效果图:功能分析:一般校验码具有的功能:1、显示内容显示内容一般是数字或者数字+字符,还有更变态的,显示的内容是随机汉字。如何随机生成汉字,请看:《用C#生成随机中文汉字验证码的基本原理》http://wulei8899.cnblogs.com/archive/2005/06/29/183200.html2、内容显示内容显示这里,有很多做法,常见的有以下几种:2.1 以

⒈oo﹪緈鍢 693

常见的验证码

一些常见的验证码效果图:

平凡酿就非凡 1002

网上几种常见校验码图片分析

前几天受刺激了,准备把CSDN的校验码图片修改。就上网找了一些参考示例。和分析了一些校验码的功能。不敢独享,整理到一起,跟大家分享。 至于CSDN新的校验码写法,不是这里面的任何一种。也不是网上可以找到的。这个不好公开,如果想研究校验码图片,建议研究我这里给的几个推荐链接。 一些常见的验证码效果图: ...

威尔软件 304

ASP验证码生成代码包

ASP验证码生成代码,支持数字和字母ABC,可自行扩充字符矢量库,可对生成验证码的多个参数进行自定义设置

一个非常好用的asp彩色验证码

一直用的一个比较好的asp验证码模块。使用很简单,调用方便。 演示地址:http://www.shengbios.com/home/products/index

上一篇: ASP.net 验证码(C#)
下一篇: Asp.Net 动态生成验证码
jingbin613
博客等级 码龄20年 35粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值