搞好寿光企业网站建设-彩色校验码的制作

2021-04-28 04:34| 发布者: | 查看: |

--------

搞好寿光企业网站建设

-------

要读懂这些编码关键是要掌握ASP中实际操作二进制数据信息的目标ADODB.Stream!本程序关键用的就是Adodb.Stream,假如你有这个基本,便可以进一步加上更多的作用如添加杂点,渐变色底色,数据队伍错位,笔划短点,提升被ocr鉴别的不能能。现阶段都还没好的鉴别模块,昨日免费下载了个号称能鉴别图象认证码90%的!把4321鉴别成 89910,因此图象码還是比较安全性的。

在在网上看到有暴力行为破译的方式,假如我用图象额外码+严禁外界递交+10次登陆密码不正确封帐号 +50次登陆密码不正确琐死IP+10秒的防更新间距申请注册页,登陆页均要加上+严禁外界递交,这样,暴力行为破译应当就没戏了。

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

---------

搞好寿光企业网站建设

------------
<
>

 
QQ在线咨询
售前咨询热线
18720358503
售后服务热线
18720358503
返回顶部