仓酷云

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

[学习教程] ASP教程之ASP天生黑色可变长考证码程序

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

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

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

x
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。程序|考证码  记得“想昔时”某天上午在这里途经,看到一名伴侣贴的本人写的考证码程序,固然他的程序是口角有杂点,但实在很简单被破解的,但却有很多人喜好着。。。没举措,当世界午研讨了一翻BMP图片,然后就写出了这些代码,只是现在没有发布,眼看明天这么多好人乱在良多论坛上注册用户来发告白,以是才贴出来共享一下。

  本考证码天生程序特性以下:

  1、黑色;

  2、BMP图象色深为16位,天生的图片体积更小;(4位长的考证码只要几百字节)

  3、长度可自界说;(1位至25位可流动设置,也能够本人改成静态)

  4、背景正色深度可自界说;

  详细请看代码

  注:代码中并没有针对动网的设置考证码Session的中央。想用的伴侣本人依据必要改一下,地位就在代码中呈现Session("Num")的那一行,改成本人必要的称号就能够了。这个考证码也能够用在任何必要考证码的中央。不必在动网论坛也可。

  上面是代码部分:
<--r>OptionExplicit
Response.Expires=0
Response.AddHeader"Pragma","no-cache"
Response.AddHeader"cache-ctrol","no-cache"
Response.ContentType="Image/BMP"
RandomizeTimer

DimText_Data(9),Text_Len,Int_Temp(),I,j,k,Int_Temp2

*****参数设置区*****

Text_Len=4考证码长度(撑持1-25位)

**********************

ReDimInt_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")=""
ForI=0ToText_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.BinaryWriteChrB(&H42)&ChrB(&H4D)
Response.BinaryWriteChrB(((Int_Temp2+206)/256-(Int_Temp2+206)256)*256)&ChrB((Int_Temp2+206)256)特别位
Response.BinaryWriteChrB(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.BinaryWriteChrB(Text_Len*10)特别位
Response.BinaryWriteChrB(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.BinaryWriteChrB(((Int_Temp2+88)/256-(Int_Temp2+88)256)*256)&ChrB((Int_Temp2+88)256)特别位

Response.BinaryWriteChrB(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.BinaryWriteChrB(&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)

上面输入图片数据
Fori=10to0Step-1
Forj=0toText_Len-1
Fork=1to9Step2
IfMid(Text_Data(Int_Temp(j)),i*10+k,1)="0"ThenInt_Temp2=Get_BackColor()*16ElseInt_Temp2=Get_ForeColor()*16
IfMid(Text_Data(Int_Temp(j)),i*10+k+1,1)="0"ThenInt_Temp2=Int_Temp2+Get_BackColor()ElseInt_Temp2=Int_Temp2+Get_ForeColor()
Response.BinaryWriteChrB(Int_Temp2)
Next
Next
Int_Temp2=(Text_Len/4-Text_Len4)*4
SelectCaseInt_Temp2
Case1
Response.BinaryWriteChrB(0)&ChrB(0)&ChrB(0)
Case2
Response.BinaryWriteChrB(0)&ChrB(0)
Case3
Response.BinaryWriteChrB(0)
EndSelect
Next

FunctionGet_BackColor()
失掉一个背景致
IfInt(Rnd*30)=0Then注:此处的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))
EndIf
EndFunction

FunctionGet_ForeColor()
失掉一个远景色
Get_ForeColor=CInt(Mid("00021209",Int(Rnd*4)*2+1,2))
EndFunction优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-17 06:51:24 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-20 15:01:47 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
莫相离 该用户已被删除
地板
发表于 2015-1-29 11:58:47 来自手机 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
若天明 该用户已被删除
5#
发表于 2015-2-14 17:19:23 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-4 08:50:24 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
柔情似水 该用户已被删除
7#
发表于 2015-3-11 18:07:38 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
兰色精灵 该用户已被删除
8#
发表于 2015-3-19 06:09:47 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
谁可相欹 该用户已被删除
9#
发表于 2015-3-27 09:09:37 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 00:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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