仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 558|回复: 8
打印 上一主题 下一主题

[学习教程] ASP教程之象 DEV-Club 那样的黑色校验码

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。要读懂这些代码次要是要懂得ASP中操纵二进制数据的工具ADODB.Stream!本程序次要用的就是Adodb.Stream,假如你有这个基本,就能够进一步增加更多的功效如到场杂点,突变底色,数字行列错位,笔划短点,进步被ocr辨认的不成能。今朝还没有好的辨认引擎,今天下载了个号称能辨认图象考证码90%的!把4321辨认成89910,以是图象码仍是对照平安的。
在网上看到有暴力破解的办法,假如我用图象附加码+克制内部提交+10次暗码毛病封帐号+50次暗码毛病琐逝世IP+10秒的防革新距离注册页,上岸页均要加上+克制内部提交,如许,暴力破解应当就没戏了。
Asp文件:Code.Asp
数据文件:body.Fix,Head.Fix
下载:点击这里下载源文件
用法:<imgsrc="code.asp">
Response.buffer=true
NumCode
FunctionNumCode()
Response.Expires=-1
Response.AddHeader"Pragma","no-cache"
Response.AddHeader"cache-ctrol","no-cache"
dimzNum,i,j
dimAdos,Ados1
Randomizetimer
天生随机四位数字:
zNum=cint(8999*Rnd+1000)
传送给session
Session("GetCode")=zNum
该for轮回是将随机数字放进一个下标3的数组,便于供应给前面的阵列变更
dimzimg(3),NStr
NStr=cstr(zNum)
Fori=0to3
zimg(i)=cint(mid(NStr,i+1,1))
Next
dimPos
界说二个ADODB.Streambinary工具,作图象数据操纵之用:
setAdos=Server.CreateObject("Adodb.Stream")
Ados.Mode=3
Ados.Type=1
Ados.Open
setAdos1=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字节+行停止标志0000二字节32字节,以是一个10x100宽小于长的图象每一个数字10x10是320字节
长年夜于宽的则无行停止标志0000,间接是300字节
这些就是BMP24bit的数据具体信息了
‘至于头部,也很复杂,包括长宽,图象入手下手标志等等~~才54字节,远没jpg甚么的庞大
Ados.LoadFromFile(Server.mappath("body.Fix"))
Ados1.writeAdos.read(1280)
第一个for轮回,按天生的随机数字按次从10X100的数字阵列中提掏出响应的四个数字
可是竖排的数字阵列
fori=0to3
Ados.Position=(9-zimg(i))*320
Ados1.Position=i*320
Ados1.writeados.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严惩于长时无0000的行停止标志
fori=0to9step1
forj=0to3
Ados1.Position=i*32+j*320
Ados.Position=Pos+30*j+i*120
Ados.writeados1.read(30)
next
next
Ados.Position=0
response.BinaryWrite间接向客户端发送图象数据
Response.ContentType="image/BMP"
Response.BinaryWriteAdos.read()
Ados.Close:setAdos=nothing
Ados1.Close:setAdos1=nothing
EndFunction
对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,
小魔女 该用户已被删除
沙发
发表于 2015-1-19 05:55:49 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
admin 该用户已被删除
板凳
发表于 2015-1-27 08:15:00 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
蒙在股里 该用户已被删除
地板
发表于 2015-2-5 06:31:53 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
因胸联盟 该用户已被删除
5#
发表于 2015-2-11 07:59:58 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
谁可相欹 该用户已被删除
6#
发表于 2015-3-2 01:04:13 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
再见西城 该用户已被删除
7#
发表于 2015-3-11 01:37:30 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
海妖 该用户已被删除
8#
发表于 2015-3-17 18:12:12 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
小女巫 该用户已被删除
9#
发表于 2015-3-24 20:35:19 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表