利用Adodb.Stream制作彩色验证码

Asp文件:Code.Asp

数据文件:body.Fix , Head.Fix

用法:<img src="code.asp">

复制代码 代码如下:

Response.buffer = true

NumCode

Function NumCode()

Response.Expires = -1

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

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

dim zNum,i,j

dim Ados,Ados1

Randomize timer

生成随机四位数字:

zNum = cint(8999*Rnd+1000)

传递给session

Session("GetCode") = zNum

该for循环是将随机数字放入一个下标3的数组,便于提供给后面的阵列变换

dim zimg(3),NStr

NStr=cstr(zNum)

For i=0 to 3

zimg(i)=cint(mid(NStr,i+1,1))

Next

dim Pos

'定义二个 ADODB.Stream binary对象,作图像数据操作之用:

set Ados=Server.CreateObject("Adodb.Stream")

Ados.Mode=3

Ados.Type=1

Ados.Open

set Ados1=Server.CreateObject("Adodb.Stream")

Ados1.Mode=3

Ados1.Type=1

Ados1.Open

'载入0~9的数字数据10x100的,Gbr的阵列数据,每个320字节,10个数字3200byte

'BGR一个点,10x10个点一个数字,一个点三个字节(二进制8位,16进制 00~FF)

'一行10个点 30字节 + 行结束标记 00 00 二字节 32字节,所以一个10x100宽小于长的图像每个数字10x10是320字节

'长大于宽的则无行结束标记 0000,直接是300字节

这些就是BMP 24bit的数据详细信息了

‘至于头部,也很简单,包含长宽,图像开始标记等等~~才54字节,远没jpg什么的复杂

Ados.LoadFromFile(Server.mappath("body.Fix"))

Ados1.write Ados.read(1280)

'第一个for循环,按生成的随机数字顺序从 10X100的数字阵列中提取出相应的四个数字

但是竖排的数字阵列

for i=0 to 3

Ados.Position=(9-zimg(i))*320

Ados1.Position=i*320

Ados1.write ados.read(320)

next

'清空已经用完的ADOS的数据,调入替换新的图像头54字节的头文件 

Ados.LoadFromFile(Server.mappath("head.fix"))

Pos=lenb(Ados.read())

Ados.Position=Pos '指定Pos位置,即可再偏移54字节的位置添加图形数据

第二个for循环,进行数字的阵列变换,由竖排的块转换为横排的数字块

方法是隔320字节抽取4次30字节写入ados对象,再抽取偏移第二行的图像数据

30字节是因为bmp 宽大于长时无00 00的行结束标记

for i=0 to 9 step 1

for j=0 to 3

Ados1.Position=i*32+j*320

Ados.Position=Pos+30*j+i*120

Ados.write ados1.read(30)

next

next

Ados.Position=0

response.BinaryWrite直接向客户端发送图像数据

Response.ContentType = "image/BMP"

Response.BinaryWrite Ados.read()

Ados.Close:set Ados=nothing

Ados1.Close:set Ados1=nothing

End Function

时间: 2024-10-23 23:38:09

利用Adodb.Stream制作彩色验证码的相关文章

利用Adodb.Stream制作彩色验证码_应用技巧

Asp文件:Code.Asp 数据文件:body.Fix , Head.Fix 用法:<img src="code.asp"> 复制代码 代码如下: Response.buffer = true NumCode Function NumCode() Response.Expires = -1 Response.AddHeader "Pragma","no-cache" Response.AddHeader "cache-ct

ASP中利用ADODB.Stream对象将字节流转换为字符流

'--------------------------------------------------------------------' 二进制转字符串'' 入口参数:字节流' 函数返回:字符串' Code By:Madpolice 2002-12-20' 利用 ADODB.Stream 对象,速度比原来的字符替换法快了n倍,n≈30!!)'--------------------------------------------------------------------'下面的常量是函

利用AdoDb.Stream对象来读取UTF-8格式的文本文件_应用技巧

复制代码 代码如下: '函数名称:ReadTextFile     '作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件     '----------------------------------------------------     Function ReadFromTextFile (FileUrl,CharSet)         If FileUrl = "" OR IsNull(FileUrl) Then             ReadFromT

利用AdoDb.Stream对象来读取UTF-8格式的文本文件

复制代码 代码如下: '函数名称:ReadTextFile     '作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件     '----------------------------------------------------     Function ReadFromTextFile (FileUrl,CharSet)         If FileUrl = "" OR IsNull(FileUrl) Then             ReadFromT

利用ADODB.Stream使用浏览器下载服务器文件

ado|stream|服务器|浏览器|下载 download.asp?file=相对路径的文件就可以把这个文件下载下来 <%  2  3 call downloadFile(replace(replace(Request("file"),"\",""),"/",""))  4  5 Function downloadFile(strFile)  6 ' make sure you are on the

利用adodb.stream直接下载任何后缀的文件(防盗链)

ado|stream|防盗链|下载 原作:possible_Y,载自时代课堂 在浏览器的地址栏里直接输入一个doc或xls或jpg的文件的url路径,那么该文件会直接显示在浏览器里.而在很多时候我们希望能直接弹出下载提示框让用户下载,我们该怎么办呢?这里有两种方法:1.设置你的服务器的iis,给doc等后缀名做映射2.在向客户端发送时设置其contenttype 下面详细说明方法2 <%Response.Buffer = trueResponse.Clear dim urlDim fso,fl,

ASP利用adodb.stream下载文件但不打开的方法

 在浏览器的地址栏里直接输入一个doc或xls或jpg的文件的url路径,那么该文件会直接显示在浏览器里.而在很多时候我们希望能直接弹出下载提示框让用户下载,我们该怎么办呢?这里有两种方法:  1.设置你的服务器的iis,给doc等后缀名做映射. 2.在向客户端发送时设置其contenttype. 下面详细说明方法2 程序代码: 复制代码 代码如下: <% Response.Buffer = true Response.Clear dim url Dim fso,fl,flsize dim Dn

asp彩色验证码图像生成脚本

脚本|验证码 ADODE.Stream完成!49行代码,三个文件 ,有点象本站的CGI img.exe的效果 Asp文件:Code.Asp 数据文件:body.Fix , Head.Fix 演示: http://www.lfgbox.com/paintblue/code/code.asp :D 我已经放我论坛去啦~~ 下载: http://www.lfgbox.com/download/code.rar 用法:<img src="code.asp"> 在检验页:判断 Cin

asp彩色验证码图像生成脚本~~49行代码!不能再简化了

脚本|验证码 ADODE.Stream完成!49行代码,三个文件 ,有点象本站的CGI img.exe的效果Asp文件:Code.Asp数据文件:body.Fix , Head.Fix演示:http://www.lfgbox.com/paintblue/code/code.asp:D 我已经放我论坛去啦~~下载:http://www.lfgbox.com/download/code.rar用法:<img src="code.asp">在检验页:判断 Cint(request