分享
 
 
 

ASP与验证码

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

如今你要申请一个QQ号,需要输入很复杂的验证码:验证码由若干个汉字组成,还加上了花哩唬哨的背景,使得有些汉字实在难以辨认。腾讯这么做,是为了防止有人利用软件批量获取QQ号码----每次提交都要输入随机生成的验证码,这是软件难以做到的。

最初的验证码,只是几个随机生成的数字。但是道高一尺魔高一丈,很快就有能识别数字的软件了,“收藏家”们利用这种软件批量获取帐号,或是探测密码,因为软件可以不知疲倦地不断submit。于是,出现了图片形式的验证码,还要加上无规则的背景,既然人眼都难以分辨,想来软件分辨起来就有一定的难度。但是腾讯开始采用汉字图片做验证码,是不是意味着破解验证码的技术又有了新进展,带背景的数字或字母图片形式的验证码,也可以被软件分辨了?

且不管那么多,我们来谈谈ASP生成验证码的办法吧。

还是从最简单的例子说起,来了解一下验证码的基本思路。

第一个例子,在显示表单的同时,生成一个4位的随机数做为验证码,利用session传递该验证码,在数据处理页面,比对用户输入的验证码与session中的值是否一致。顺便说一句,我曾见过有糊涂的仁兄利用hidden类型的input控件传递验证码,孰不知,通过查看页面源代码,该数据是暴露无遗的。还有password型的input中的数据也一样。

<%

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

'* NAME:post.asp *

'* CODE:netops(www.netop.cc) *

'* USE:验证码示例一:数字型 *

'* TIME:2005.7 *

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

Response.Buffer = true

Dim CheckCode

Response.Write "<html><body>"

'======***表单提交后:***======

if Request.ServerVariables("REQUEST_METHOD")="POST" then

Dim founderr,callform,msg

founderr = false '是否有错误发生

callform = false '是否调用表单

msg = "" '提示信息

'==============验证码验证开始===========

dim sessionCode

sessionCode = session("chkCode")

session("chkCode") = ""

CheckCode = trim(Request.Form("chkcode"))

if CheckCode = "" then

msg = msg + "<li>请填写验证码"

founderr = true

callform = true

elseif cstr(CheckCode) <> cstr(sessionCode) then

msg = msg + "<li>验证码不正确"

founderr = true

callform = true

end if

'==================验证码验证结束============

if founderr = true then

call message("500")

if callform = true then call myform()

else

msg = "<li>操作成功!"

call message("500")

end if

'======***页面初始化(表单提交前)***======

else

CheckCode = ""

call myform()

end if

Response.Write "</body></html>"

REM 子过程,定义表单

Sub myform()

Response.Write "<table width=500 border=1 cellspacing=0 cellpadding=5 align=center>"&_

"<form name=form1 method=post action=post.asp>"&_

"<tr height=30><td rowspan=2 width=100 align=center>验证码</td>"&_

"<td><input type=text name=chkcode size=10>&nbsp;&nbsp;&nbsp;&nbsp;"&_

getChkCode()&"</td></tr>"&_

"<tr height=30><td>请填写文本框右侧的验证码</td></tr>"&_

"<tr height=30><td colspan=2 align=center>"&_

"<input type=submit name=Submit value=提交></td></tr>"&_

"</form></table>"

end Sub

Rem 子函数,生成验证码(四位随机数)

function getChkCode()

dim ranNum

randomize

ranNum=int(9000*rnd)+1000

session("chkCode") = ranNum

getChkCode = ranNum

end function

Rem 提示信息

sub message(w)

Response.Write "<table width="&w&" border=1 cellspacing=0 cellpadding=5 align=center>"&_

"<tr height=30><td>提示信息</td></tr>"&_

"<tr valign=top><td style=""color:red;"">"&msg&"</td></tr></table>"

end sub

%>

以上代码展示生成验证码的一般思路,生成一个四位随机数作为验证码,这是最简单,同时也是最不安全的一种方法。

或许你想到了,可以以每位数字对应一张图片,生成图片型的验证码,就象图片型计数器那样处理。这并不是一个好想法,它跟数值型的验证码没有本质上的区别,并不能提高安全性。

下面,介绍如何生成图片型的验证码。

首先,可以通过ASP生成xbm型的验证码,这的的确确是一张xbm格式的图片,而且,你可以任意设置图片的大小。为了简单起见,我们仍以数字为例。

可以把生成验证码的代码独立出来,命名为checkcode.asp:

<%

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

'* NAME:checkcode.asp *

'* CODE:netops(www.netop.cc) &nbs

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有