仓酷云

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

[学习教程] ASP网页编程之asp编程中十分有用的例子

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

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

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

x
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们)编程1.怎样用Asp判别你的网站的假造物理路径
答:利用Mappath办法
<palign="center"><fontsize="4"face="Arial"><b>
ThePhysicalpathtothisvirtualwebsiteis:
</b></font>
<fontcolor="#FF0000"size="6"face="Arial">
<%=Server.MapPath("")%>
</font></p>
2.我怎样晓得利用者所用的扫瞄器?
答:利用theRequestobject办法
strBrowser=Request.ServerVariables("HTTP_USER_AGENT")
IfInstr(strBrowser,"MSIE")0Then
  Response.redirect("ForMSIEOnly.htm")
Else
  Response.redirect("ForAll.htm")
EndIf
3.怎样盘算天天的均匀重复会见人数
答:办理办法
<%startdate=DateDiff("d",Now,"01/01/1990")
ifstrdate<0thenstartdate=startdate*-1
avgvpd=Int((usercnt)/startdate)%>
显现了局
<%response.write(avgvpd)%>
thatisit.thispagehavebeenviewedsinceNovember10,1998
4.怎样显现随机图像
<%dimp,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic="graphix/randompics/"&p&".gif"
%>
显现

6.怎样断定对方的IP地点
答:<%=Request.serverVariables("REMOTE_ADDR)%>
7.怎样链结到一副图片上
答:<%@Languages=vbscript%>
<%response.expires=0
strimagename="graphix/errors/erroriamge.gif"
response.redirect(strimagename)
%>
8.强制输出暗码对话框
答:把这句话放载页面的开首
<%response.status="401notAuthorized"
response.end
%>
9.怎样传送变量从一页到另外一页
答:用HIDDEN范例来传送变量
<%formmethod="post"action="mynextpage.asp">
<%foreachiteminrequest.form%>
<inputnamee="<%=item%>"type="HIDDEN"
value="<%=server.HTMLEncode(Request.form(item))%>">
<%next%>
</form>
10.为什么我在asp程序内利用msgbox,程序堕落说没有权限
答:因为asp是服务器运转的,假如能够在服务器显现一个对话框,那末你只好等有人按了断定以后,你的程序才干持续实行,而一样平常服务器不会有人守着,以是微软不能不克制这个函数,并胡乱告知你(:)呵呵)没有权限。可是ASP和客户端剧本分离倒能够显现一个对话框,asfollows:
<%yourVar="测试对话框"%>
<%scriptlanguage=javascript>
alert("<%=yourvar%>")
</script>
11.有无举措回护本人的源代码,不给人看到
答:能够往下载一个微软的WindowsscriptEncoder,它能够对asp的剧本和客户端javascript/vbscript剧本举行加密。。。不外客户端加密后,只要ie5才干实行,服务器端剧本加密后,只要服务器上安装有scriptengine5(装一个ie5就有了)才干实行。
12.如何才干将querystring从一个asp文件传送到另外一个?
答:前者文件到场下句:Response.Redirect("second.asp?"&Request.ServerVariables("QUERY_STRING"))
13.global.asa文件老是不起感化?
答:只要web目次设置为webapplication,global.asa才无效,而且一个webapplication的根目次下global.asa才无效。IIS4可使用InternetServiceManager设置applicationsetting如何才干使得htm文件好像asp文件一样能够实行剧本代码?
14.如何才干使得htm文件好像asp文件一样能够实行剧本代码?
答:InternetSevicesManager->选择defaultwebsite->右鼠键->菜单属性-〉主目次->使用程序设置(ApplicationSetting)->点击按钮"设置"->appmapping->点击按钮"Add"->executablebrowse选择WINNTSYSTEM32INETSRVASP.DLLEXTENSION输出htmmethodexclusions输出PUT.DELETE全体断定便可。可是值得注重的是如许对htm也要由asp.dll处置,效力将下降。
15.怎样注册组件
答:有两种办法。
第一种办法:手工注册DLL这类办法从IIs3.0一向利用到IIs4.0和别的的WebServer。它必要你在命令行体例上去实行,进进到包括有DLL的目次,并输出:regsvr32component_name.dll比方c:        empegsvr32AspEmail.dll它会把dll的特定信息注册进服务器中的注册表中。然后这个组件就能够在服务器上利用了,可是这个办法有一个缺点。当利用这类办法注册终了组件后,该组件必需要响应的设置NT的匿名帐号有权限实行这个dll。出格是一些组件必要读取注册表,以是,这个注册组件的办法仅仅是利用在服务器上没有MTS的情形下,要作废注册这个dll,利用:regsvr32/uaspobject.dllexamplec:        empegsvr32/uaneiodbc.dll
第二种办法:利用MTS(MicrosoftTransactionServer)MTS是IIS4新增特征,可是它供应了伟大的改善。MTS同意你指定只要有特权的用户才干够会见组件,年夜年夜进步了网站服务器上的平安性设置。在MTS上注册组件的步骤以下:
1)翻开IIS办理把持台。
2)睁开transactionserver,右键单击"pkgsinstalled"然后选择"newpackage"。
3)单击"createanemptypackage"。
4)给该包定名。
5)指定administrator帐号或则利用"interactive"(假如服务器常常是利用administrator上岸的话)。
6)如今利用右键单击你刚创建的谁人包上面睁开后的"components"。选择"newthencomponent"。
7)选择"installnewcomponent"。
8)找到你的.dll文件然后选择next到完成。
要删除这个工具,只需选择它的图标,然后选择delete。
附注:出格要注重第二种办法,它是用来调试本人编写组件的最好办法,而不用每次都必要从头启念头器了。
16.ASP与Access数据库毗连:
<%@language=VBscript%>
<%
dimconn,mdbfile
mdbfile=server.mappath("数据库称号.mdb")
setconn=server.createobject("adodb.connection")
conn.open"driver={microsoftaccessdriver(*.mdb)};uid=admin;pwd=数据库暗码;dbq="&mdbfile
%>
asp编程有效的例子(二)
17.ASP与SQL数据库毗连:
<%@language=VBscript%>
<%
dimconn
setconn=server.createobject("ADODB.connection")
con.open"PROVIDER=SQLOLEDB;DATASOURCE=SQL服务器称号或IP地点;UID=sa;PWD=数据库暗码;DATABASE=数据库称号
%>
创建纪录集工具:
setrs=server.createobject("adodb.recordset")
rs.openSQL语句,conn,3,2
18.SQL经常使用命令利用办法:
(1)数据纪录选择:
sql="select*from数据表where字段名=字段值orderby字段名[desc]"
sql="select*from数据表where字段名like%字段值%orderby字段名[desc]"
sql="selecttop10*from数据表where字段名orderby字段名[desc]"
sql="select*from数据表where字段名in(值1,值2,值3)"
sql="select*from数据表where字段名between值1and值2"
(2)更新数据纪录:
sql="update数据表set字段名=字段值where前提表达式"
sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere前提表达式"
(3)删除数据纪录:
sql="deletefrom数据表where前提表达式"
sql="deletefrom数据表"(将数据表一切纪录删除)
(4)增加数据纪录:
sql="insertinto数据表(字段1,字段2,字段3…)valuess(值1,值2,值3…)"
sql="insertinto方针数据表select*from源数据表"(把源数据表的纪录增加到方针数据表)
(5)数据纪录统计函数:
AVG(字段名)得出一个表格栏均匀值
COUNT(*|字段名)对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名)获得一个表格栏最年夜的值
MIN(字段名)获得一个表格栏最小的值
SUM(字段名)把数据栏的值相加
援用以上函数的办法:
sql="selectsum(字段名)as别号from数据表where前提表达式"
setrs=conn.excute(sql)
用rs("别号")猎取统的计值,别的函数使用同上。
(5)数据表的创建和删除:
CREATETABLE数据表称号(字段1范例1(长度),字段2范例2(长度)……)
例:CREATETABLEtab01(namevarchar(50),datetimedefaultnow())
DROPTABLE数据表称号(永世性删除一个数据表)
19.纪录集工具的办法:
rs.movenext将纪录指针从以后的地位向下移一行
rs.moveprevious将纪录指针从以后的地位向上移一行
rs.movefirst将纪录指针移到数据表第一行
rs.movelast将纪录指针移到数据表最初一行
rs.absoluteposition=N将纪录指针移到数据表第N行
rs.absolutepage=N将纪录指针移到第N页的第一行
rs.pagesize=N设置每页为N笔记录
rs.pagecount依据pagesize的设置前往总页数
rs.recordcount前往纪录总数
rs.bof前往纪录指针是不是超越数据表首端,true暗示是,false为否
rs.eof前往纪录指针是不是超越数据表末了,true暗示是,false为否
rs.delete删除以后纪录,但纪录指针不会向下挪动
rs.addnew增加纪录到数据表末了
rs.update更新数据表纪录
---------------------------------------
20Recordset工具办法
Open办法
recordset.OpenSource,ActiveConnection,CursorType,LockType,Options
Source
Recordset工具能够经由过程Source属性来毗连Command工具。Source参数能够是一个Command工具称号、一段SQL命令、一个指定的数据表称号或是一个StoredProcedure。假设省略这个参数,体系则接纳Recordset工具的Source属性。
ActiveConnection
Recordset工具能够经由过程ActiveConnection属性来毗连Connection工具。这里的ActiveConnection能够是一个Connection工具或是一串包括数据库毗连信息(ConnectionString)的字符串参数。
CursorType
Recordset工具Open办法的CursorType参数暗示将以甚么样的游标范例启动数据,包含adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述以下:
--------------------------------------------------------------
常数常数值申明
-------------------------------------------------------------
adOpenForwardOnly0缺省值,启动一个只能向前挪动的游标(ForwardOnly)。
adOpenKeyset1启动一个Keyset范例的游标。
adOpenDynamic2启动一个Dynamic范例的游标。
adOpenStatic3启动一个Static范例的游标。
-------------------------------------------------------------
以上几个游标范例将间接影响到Recordset工具一切的属性和办法,以以下表申明他们之间的区分。
-------------------------------------------------------------
Recordset属性adOpenForwardOnlyadOpenKeysetadOpenDynamicadOpenStatic
-------------------------------------------------------------
AbsolutePage不撑持不撑持可读写可读写
AbsolutePosition不撑持不撑持可读写可读写
ActiveConnection可读写可读写可读写可读写
BOF只读只读只读只读
Bookmark不撑持不撑持可读写可读写
CacheSize可读写可读写可读写可读写
CursorLocation可读写可读写可读写可读写
CursorType可读写可读写可读写可读写
EditMode只读只读只读只读
EOF只读只读只读只读
Filter可读写可读写可读写可读写
LockType可读写可读写可读写可读写
MarshalOptions可读写可读写可读写可读写
MaxRecords可读写可读写可读写可读写
PageCount不撑持不撑持只读只读
PageSize可读写可读写可读写可读写
RecordCount不撑持不撑持只读只读
Source可读写可读写可读写可读写
State只读只读只读只读
Status只读只读只读只读
AddNew撑持撑持撑持撑持
CancelBatch撑持撑持撑持撑持
CancelUpdate撑持撑持撑持撑持
Clone不撑持不撑持
Close撑持撑持撑持撑持
Delete撑持撑持撑持撑持
GetRows撑持撑持撑持撑持
Move不撑持撑持撑持撑持
MoveFirst撑持撑持撑持撑持
MoveLast不撑持撑持撑持撑持
MoveNext撑持撑持撑持撑持
MovePrevious不撑持撑持撑持撑持
NextRecordset撑持撑持撑持撑持
Open撑持撑持撑持撑持
Requery撑持撑持撑持撑持
Resync不撑持不撑持撑持撑持
Supports撑持撑持撑持撑持
Update撑持撑持撑持撑持
UpdateBatch撑持撑持撑持撑持
--------------------------------------------------------------
个中NextRecordset办法其实不合用于MicrosoftAccess数据库。
LockType
Recordset工具Open办法的LockType参数暗示要接纳的Lock范例,假如疏忽这个参数,那末体系会以Recordset工具的LockType属性为预设值。LockType参数包括adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述以下:
-------------------------------------------------------------
常数常数值申明
--------------------------------------------------------------
adLockReadOnly1缺省值,Recordset工具以只读体例启动,没法运转AddNew、Update及Delete等办法
adLockPrssimistic2当数据源正在更新时,体系会临时锁住其他用户的举措,以坚持数据分歧性。
adLockOptimistic3当数据源正在更新时,体系其实不会锁住其他用户的举措,其他用户能够对数据举行增、删、改的操纵。
adLockBatchOptimistic4当数据源正在更新时,其他用户必需将CursorLocation属性改成adUdeClientBatch才干对数据举行增、
删、改的操纵。
怎样在服务器端挪用winzip命令行对上传的多个文件打包紧缩
-------------------------------------------
怎样在服务器端挪用winzip命令行对上传的多个文件打包紧缩?
要办理这个成绩,起首要懂得一下WindowsScriptingHost,简称为WSH!上面援用一下微软给的注释:
************************************************************************
*WSH是微软剧本手艺系列中的一种,复杂讲,就是供应了一种剧本情况,*
*在这个情况中,预界说了一些工具,同时也能够利用COM里的其他工具。*
*他利用一种剧本引擎来对剧本注释实行,微软本人撑持VBSCRIPT和JSCRIPT,*
*第三方也能够开辟本人的剧本引擎。*
************************************************************************
详细点,就是你先编好一些剧本文件(微软自带例子多少,后缀.vbs或.js),
然后用一个程序对他注释实行,这个程序就叫WindowsScriptingHost,程序
的名字是Wscript.exe(大概命令行的Cscript.exe),你能够检察一下你的呆板
里有无这两个文件,就晓得有无WSH了。(win2000是在winnt/system32/下)
这十分像批处置文件,只不外文件里不是命令行,而是剧本言语写的剧本。
再来复杂先容一下WSH自带的几个内置工具包含:
1.由Wscript.exe供应的工具
Wscript作为Wscript公然给剧本引擎。
WshArguments未公然;经由过程Wscript.Arguments属性会见。进
2.由WSHom.Ocx供应的工具。
WshShell主动工具。ProgID是Wscript.WshShell。
(注:这个就是我们要用到的,能够实行dos命令)
WshNetwork主动工具。ProgID是Wscript.WshNetwork。
WshShortcut未公然;经由过程WshShell.CreateShortcut办法会见。
WshUrlShortcut未公然;经由过程WshShell.CreateShortcut办法会见。
WshCollection未公然;经由过程WshNetwork.EnumNetworkDrives或WshNetwork.EnumPrinterConnection办法会见。
WshEnvironment未公然;经由过程WshShell.Environment属性会见。
WshSpecialFolders未公然;经由过程WshShell.Folder属性会见。
他们次要能够完成情况变量的猎取,收集上岸,驱动器映照,快截体例创立,
程序加载,特别文件夹(如体系文件夹)信息猎取等功效。
假如你的体系里撑持ADO等COM部件,你一样可使用,
上面这个例子演示翻开写字板检察文本文件,同时创立一个文本文件并写进一
段话,你能够把他拷贝到写字板中,然后以.vbs为后缀存盘,以后双击他,
test.vbs
*********************
上面用SHELL工具启动程序
*********************
SetWshShell=Wscript.CreateObject("Wscript.Shell")
WshShell.Run("notepad"&Wscript.ScriptFullName)

***********************************************
用COM工具Scripting.FileSystemObject操纵文本文件
***********************************************
Setfs=Wscript.CreateObject("Scripting.FileSystemObject")
Seta=fs.CreateTextFile("c:        estfile.txt",True)
a.WriteLine("这是一个测试。")
a.Close
也能够在asp等web编程言语中使用
<scriptlanguage="VBScript.Encode"runat=server>
下面用SHELL工具启动程序
SetWshShell=server.CreateObject("Wscript.Shell")
IsSuccess=WshShell.Run("D:winntsystem32cmd.exe",1,true)
ifIsSuccess=0Then
Response.write"命令乐成实行!"
else
Response.write"命令实行失利!权限不敷大概该程序没法在DOS形态下运转"
endif
</script>
注:
1.个中runat=server必需要有
2.SetWshShell=Wscript.CreateObject("Wscript.Shell")
要改成SetWshShell=server.CreateObject("Wscript.Shell"),
3.参数1代表SW_SHOWNORMAL,激活并显现一个窗口。若窗口是最小化或最年夜化,则恢复到其本来的巨细和地位。
4.TRUE代表前往实行的毛病,False大概为指定代表剧本持续实行而不守候历程停止。
5.挪用WSH的内置工具了,能够象挪用函数和历程一样。
如callWshShell.Run("D:winntsystem32cmd.exe",1,true)
假如你对WSH感乐趣,想懂得更多的话,请观察
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsconwshbasics.asp
http://www.dev-club.com/club/bbs/showEssence.asp?id=11136
如今我们言回正传来看看怎样对文件举行紧缩息争压!
人人都晓得winzip对文件解压和紧缩都轻而易举,可是怎样经由过程程序和命令行对其挪用呢?
固然winzip的作者已开辟出
WinZipCommandLineSupportAdd-OnVersion1.0
人人往能够往http://www.winzip.com/wzcline.htm下载wzcline.exe!
条件是本机须安装winzip8.0或更高版本的撑持,假如你不是winzip8.0,往
http://www.winzip.com/download.htm下载!
下载后,间接安装就能够!
就会在winzip的目次中发生winzip命令行匡助文件和程序WZZIP.exe,WZUNZIP.EXE。
你能够入手下手运转里挪用:
如:"c:programfileswinzipwzzip"myfile.zip
也能够拷贝这里两个文件就任意目次下,间接在dos窗口下运转
如:wzzip.exemyfile.zip
你能够在体系的情况变量里到场setpath=c:windows;c:programfileswinzip;
就能够在任何中央不必到场路经挪用了!
如今来复杂的懂得一下匡助中两个命令的基础用法
紧缩文件用WZZIP.exe:
通用格局:wzzip[options]zipfile[@listfile][files...]
[options]包含:
-a默许的操纵,紧缩文件
-a+紧缩文件,并删除要紧缩的文件
-b[drive|path]是在别的的驱动器上创立一时紧缩文件
-d删除zip文件中指定的方针文件
-e<x|n|f|s|0>是设置紧缩比率,x最年夜,0最小
-f交换zip文件中存在的文件
-h|-?观察匡助
-v创立一个紧缩文件的列表信息
-@list先创立一个包括一切要解压的文件的文件,然后按所包括的的文件名紧缩
...............(其他详细看匡助文件)
[@listfile]是紧缩文件的列表信息记录
[files...]则是要紧缩的多个文件,用空格离隔,也能够用通配符
例:
紧缩以后目次的一切文件
wzziptest.zip*.*
紧缩范例为txt的一切文件
wzziptest.zip*.txt
紧缩两个文件
wzziptest.zipabc.txtdef.txt
紧缩范例为txt的一切文件除abc.txt
wzzip-xABC.TXTtest.zip*.txt
紧缩D:docs下的一切范例为txt的文件及子目次
wzzip-rptest.zipd:docs*.txt
把zipit.1st里的文件更新到test.zip
wzzip-utest.zip@Zipit.lst
列出一个紧缩文件的列表内容
wzzip-vtest.zip

解压文件用WZUNZIP.exe:
经由过程格局:wzunzip[options]zipfile[@listfile][path][files...]
[options]包含:
-c[m]解压是显现文件列表在dos屏幕中
-d重修zip文件中的目次布局
-f只解压在zip文件里同今朝文件夹存在的同名的文件,假如没有则不解压
-jhrs无视zip文件里的文件的埋没、只读、体系属性
-Jhrs只解压带有埋没、只读、体系属性的文件
-n只解压叫新的文件,假如要解压的文件比已存在的新则交换。
-o不必经由过程yes来断定是不是要交换文件
-v创立一个紧缩文件的列表信息
-@list先创立一个包括一切要解压的文件的文件,然后按所包括的的文件名解压
...............(其他详细看匡助文件)
比方:
创立一切文件到以后目次下
wzunziptest.zip
从test.zip中创立abc.txt到以后目次下
wzunziptest.zipabc.txt
创立在test.zip中的目次布局及文件到以后目次下
wzunzip-dtest.zip
创立在test.zip中的目次布局及文件到c:docs下
wzunzip-dtest.zipc:docs从test.zip中创立包括在files.ist中的文件名的文件
wzunziptest.zip@files.lst
显现test.zip的文件列表内容
wzunzip-vtest.zip
显现紧缩文件中一切范例为txt的文件列表内容
wzunzip-vtest.zip*.txt

有了以上的筹办,那末我们如今来编写VBS来实行文件解压和紧缩就轻而易举了:
test.vbs
*********************
下面用SHELL工具启动程序
*********************
SetWshShell=Wscript.CreateObject("Wscript.Shell")
WshShell.Run("c:wzzip.exec:        est.zipc:a.txtc:.txt")

test.asp
*********************
下面用SHELL工具启动程序
*********************
<scriptlanguage="VBScript.Encode"runat=server>
下面用SHELL工具启动程序
SetWshShell=server.CreateObject("Wscript.Shell")
IsSuccess=WshShell.Run("c:wzzip.exec:        est.zipc:a.txtc:.txt",1,true)
ifIsSuccess=0Then
Response.write"命令乐成实行!"
else
Response.write"命令实行失利!权限不敷大概该程序没法在DOS形态下运转"
endif
</script>
使用ASP远程注册DLL的办法
--------------------------
<%Response.Buffer=True%>
<%Server.ScriptTimeout=500
DimfrmFolderPath,frmFilePath
frmFolderPath=Request.Form("frmFolderPath")
frmFilePath=Request.Form("frmDllPath")
frmMethod=Request.Form("frmMethod")
btnREG=Request.Form("btnREG")
%>
<HTML>
<HEAD>
<TITLE>Regsvr32.asp</TITLE>
<STYLETYPE="TEXT/CSS">
.Legend{FONT-FAMILY:veranda;FONT-SIZE:14px;FONT-WEIGHT:bold;COLOR:blue}
.FS{FONT-FAMILY:veranda;FONT-SIZE:12px;BORDER-WIDTH:4px;BORDER-COLOR:green;
MARGIN-LEFT:2px;MARGIN-RIGHT:2px}
TD{MARGIN-LEFT:6px;MARGIN-RIGHT:6px;PADDING-LEFT:12px;PADDING-RIGHT:12px}
</STYLE>
</HEAD>
<BODY>
<FORMNAME="regForm"METHOD="POST">
<TABLEBORDER=0CELLSPACING=6CELLPADDING=6MARGINWIDTH=6>
<TR>
<TDVALIGN=TOP>
<FIELDSETID=FS1NAME=FS1CLASS=FS>
<LEGENDCLASS=Legend>RegsvrFunctions</LEGEND>
InsertPathtoDLLDirectory<BR>
<INPUTTYPE=TEXTNAME="frmFolderPath"value="<%=frmFolderPath%>"><BR>
<INPUTTYPE=SUBMITNAME=btnFileListvalue="BuildFileList"><BR>
<%
IFRequest.Form("btnFileList")""ORbtnREG""Then
SetRegisterFiles=NewclsRegister
RegisterFiles.EchoB("<B>SelectFile</B>")
CallRegisterFiles.init(frmFolderPath)
RegisterFiles.EchoB("<BR><INPUTTYPE=SUBMITNAME=btnREGvalue="&Chr(34)_
&"REG/UNREG"&Chr(34)&">")
IFRequest.Form("btnREG")""Then
CallRegisterFiles.Register(frmFilePath,frmMethod)
EndIF
SetRegisterFiles=Nothing
EndIF
%>
</FIELDSET>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
<%
ClassclsRegister
Privatem_oFS
PublicPropertyLetoFS(objOFS)
m_oFS=objOFS
EndProperty
PublicPropertyGetoFS()
SetoFS=Server.CreateObject("Scripting.FileSystemObject")
EndProperty

Subinit(strRoot)RoottoSearch(c:,d:,e:)
DimoDrive,oRootDir
IFoFS.FolderExists(strRoot)Then
IFLen(strRoot)<3ThenMustBeaDrive
SetoDrive=oFS.GetDrive(strRoot)
SetoRootDir=oDrive.RootFolder
Else
SetoRootDir=oFS.GetFolder(strRoot)
EndIF
Else
EchoB("<B>Folder("&strRoot&")NotFound.")
ExitSub
EndIF
setRoot=oRootDir
Echo("<SELECTNAME="&Chr(34)&"frmDllPath"&Chr(34)&">")
CallgetAllDlls(oRootDir)
EchoB("</SELECT>")
BuildOptions
EndSub
SubgetAllDlls(oParentFolder)
DimoSubFolders,oFile,oFiles
SetoSubFolders=oParentFolder.SubFolders
SetopFiles=oParentFolder.Files
ForEachoFileinopFiles
IFRight(lCase(oFile.Name),4)=".dll"ORRight(lCase(oFile.Name),4)=".ocx"Then
Echo("<OPTIONvalue="&Chr(34)&oFile.Path&Chr(34)&">"_
&oFile.Name&"</Option>")
EndIF
Next
OnErrorResumeNext
ForEachoFolderInoSubFoldersIterateAllFoldersinDrive
SetoFiles=oFolder.Files
ForEachoFileinoFiles
IFRight(lCase(oFile.Name),4)=".dll"ORRight(lCase(oFile.Name),4)=".ocx"Then
Echo("<OPTIONvalue="&Chr(34)&oFile.Path&Chr(34)&">"_
&oFile.Name&"</Option>")
EndIF
Next
CallgetAllDlls(oFolder)
Next
OnErrorGoTo0
EndSub
SubRegister(strFilePath,regMethod)
DimtheFile,strFile,oShell,exitcode
SettheFile=oFS.GetFile(strFilePath)
strFile=theFile.Path
SetoShell=CreateObject("WScript.Shell")
IFregMethod="REG"ThenRegister
oShell.Run"c:WINNTsystem32egsvr32.exe/s"&strFile,0,False
exitcode=oShell.Run("c:WINNTsystem32egsvr32.exe/s"&strFile,0,False)
EchoB("regsvr32.exeexitcode="&exitcode)
ElseunRegister
oShell.Run"c:WINNTsystem32egsvr32.exe/u/s"&strFile,0,False
exitcode=oShell.Run("c:WINNTsystem32egsvr32.exe/u/s"&strFile,0,False)
EchoB("regsvr32.exeexitcode="&exitcode)
EndIF
CleanupoShell
EndSub
SubBuildOptions
EchoB("Register:<INPUTTYPE=RADIONAME=frmMethodvalue=REGCHECKED>")
EchoB("unRegister:<INPUTTYPE=RADIONAME=frmMethodvalue=UNREG>")
EndSub
FunctionEcho(str)
Echo=Response.Write(str&vbCrLf)
EndFunction
FunctionEchoB(str)
EchoB=Response.Write(str&"<BR>"&vbCrLf)
EndFunction
SubCleanup(obj)
IfisObject(obj)Then
Setobj=Nothing
EndIF
EndSub
SubClass_Terminate()
CleanupoFS
EndSub
EndClass
%>
使用CDONTS发送邮件的ASP函数
<%
LastUpdatedByReconOn05/14/2001
OnErrorResumeNext
使用CDONTS组件在Win2k上发送邮件
发送一般邮件
SendMail"admin@ny.com","iamchn@263.net","NormalMail!","Pleasechecktheattatchment!",2,0,"C:Love.txt"
发送HTML邮件
Dimm_fso,m_tf
Dimm_strHTML
Setm_fso=Server.CreateObject("SCRIPTING.FILESYSTEMOBJECT")
Setm_tf=m_fso.OpenTextFile("C:Mail.htm",1)
m_strHTML=m_tf.ReadAll
Writem_strHTML
Setm_tf=Nothing
Setm_fso=Nothing
SendMail"admin@ny.com","iamchn@263.net","HTMLMail!",m_strHTML,2,1,Null
参数申明
strFrom:发件人Email
strTo:收件人Email
strSubject:函件主题
strBody:函件注释
lngImportance:函件主要性
:0-低主要性
:0-中等主要性(默许)
:0-高主要性
lngAType:函件格局
:为1时将邮件注释作为HTML(此时能够发送HTML邮件)
strAttach:附件的路径
SubSendMail(strFrom,strTo,strSubject,strBody,lngImportance,lngAType,strAttach)
DimobjMail
SetobjMail=Server.CreateObject("CDONTS.NEWMAIL")
WithobjMail
.From=strFrom
.To=strTo
.Subject=strSubject
.Body=strBody
.Importance=lngImportance
IflngAType=1Then
.BodyFormat=0
.MailFormat=0
EndIf
IfIsEmpty(strAttach)=FalseAndIsNull(strAttach)=FalseThen
.AttachFilestrAttach
EndIf
.Send
EndWith
SetobjMail=Nothing
EndSub
%>
处置驱动器和文件夹
利用FileSystemObject(FSO)工具形式,能够有企图地处置驱动器和文件夹,就像在Windows资本办理器中交互式地处置它们一样。能够复制和挪动文件夹,猎取有关驱动器和文件夹的信息,等等。
猎取有关驱动器的信息
能够用Drive工具来取得有关各类驱动器的信息,这些驱动器是什物地或经由过程收集毗连到体系上的。它的属性能够用来取得上面的信息内容:
驱动器的总容量,以字节为单元(TotalSize属性)
驱动器的可用空间是几,以字节为单元(AvailableSpace或FreeSpace属性)
哪一个号被赋给了该驱动器(DriveLetter属性)
驱动器的范例是甚么,如可挪动的、流动的、收集的、CD-ROM或RAM磁盘(DriveType属性)
驱动器的序列号(SerialNumber属性)
驱动器利用的文件体系范例,如FAT、FAT32、NTFS等等(FileSystem属性)
驱动器是不是可使用(IsReady属性)
共享和/或卷的名字(ShareName和VolumeName属性)
驱动器的路径或根文件夹(Path和RootFolder属性)
请考查示例代码,来了解怎样在FileSystemObject中利用这些属性。
Drive工具用法示例
利用Drive工具来搜集有关驱动器的信息。鄙人面的代码中,没有对实践的Drive工具的援用;相反,利用GetDrive办法来取得现有Drive工具的援用(在这个例子中就是drv)。
上面示例树模了怎样在VBScript中利用Drive工具:
SubShowDriveInfo(drvPath)
Dimfso,drv,s
Setfso=CreateObject("Scripting.FileSystemObject")
Setdrv=fso.GetDrive(fso.GetDriveName(drvPath))
s="Drive"&UCase(drvPath)&"-"
s=s&drv.VolumeName&"<br/>"
s=s&"TotalSpace:"&FormatNumber(drv.TotalSize/1024,0)
s=s&"Kb"&"<br/>"
s=s&"FreeSpace:"&FormatNumber(drv.FreeSpace/1024,0)
s=s&"Kb"&"<br/>"
Response.Writes
EndSub
上面的代码申明在JScript中完成一样的功效:
functionShowDriveInfo1(drvPath)
{
varfso,drv,s="";
fso=newActiveXObject("Scripting.FileSystemObject");
drv=fso.GetDrive(fso.GetDriveName(drvPath));
s+="Drive"+drvPath.toUpperCase()+"-";
s+=drv.VolumeName+"<br/>";
s+="TotalSpace:"+drv.TotalSize/1024;
s+="Kb"+"<br/>";
s+="FreeSpace:"+drv.FreeSpace/1024;
s+="Kb"+"<br/>";
Response.Write(s);
}
处置文件夹
鄙人面的表中,形貌了一般的文件夹义务和实行它们的办法。
义务办法
创立文件夹。FileSystemObject.CreateFolder
删除文件夹。Folder.Delete或FileSystemObject.DeleteFolder
挪动文件夹。Folder.Move或FileSystemObject.MoveFolder
复制文件夹。Folder.Copy或FileSystemObject.CopyFolder
检索文件夹的名字。Folder.Name
假如文件夹在驱动器上存在,则找出它。FileSystemObject.FolderExists
取得现有Folder工具的实例。FileSystemObject.GetFolder
找出文件夹的父文件夹名。FileSystemObject.GetParentFolderName
找出体系文件夹的路径。FileSystemObject.GetSpecialFolder

请考查示例代码,来看看在FileSystemObject中利用了几种这些的办法和属性。
上面的示例树模了怎样在VBScript中利用Folder和FileSystemObject工具,来操纵文件夹和取得有关它们的信息:

SubShowFolderInfo()
Dimfso,fldr,s
取得FileSystemObject的实例。
Setfso=CreateObject("Scripting.FileSystemObject")
取得Drive工具。
Setfldr=fso.GetFolder("c:")
打印父文件夹名字。
Response.Write"Parentfoldernameis:"&fldr&"<br/>"
打印驱动器名字。
Response.Write"Containedondrive"&fldr.Drive&"<br/>"
打印根文件名。
Iffldr.IsRootFolder=TrueThen
Response.Write"Thisistherootfolder."&""<br/>"<br/>"
Else
Response.Write"Thisfolderisntarootfolder."&"<br/><br/>"
EndIf
用FileSystemObject工具创立新的文件夹。
fso.CreateFolder("C:Bogus")
Response.Write"CreatedfolderC:Bogus"&"<br/>"
打印文件夹的基础名字。
Response.Write"Basename="&fso.GetBaseName("c:ogus")&"<br/>"
删除新创立的文件夹。
fso.DeleteFolder("C:Bogus")
Response.Write"DeletedfolderC:Bogus"&"<br/>"
EndSub
上面的示例显现怎样在JScript中利用Folder和FileSystemObject工具:
functionShowFolderInfo()
{
varfso,fldr,s="";
//取得FileSystemObject的实例。
fso=newActiveXObject("Scripting.FileSystemObject");
//取得Drive工具。
fldr=fso.GetFolder("c:");
//打印父文件夹名。
Response.Write("Parentfoldernameis:"+fldr+"<br/>");
//打印驱动器名字。
Response.Write("Containedondrive"+fldr.Drive+"<br/>");
//打印根文件名。
if(fldr.IsRootFolder)
Response.Write("Thisistherootfolder.");
else
Response.Write("Thisfolderisntarootfolder.");
Response.Write("<br/><br/>");
//用FileSystemObject工具创立新的文件夹。
fso.CreateFolder("C:Bogus");
Response.Write("CreatedfolderC:Bogus"+"<br/>");
//打印文件夹的基础名。
Response.Write("Basename="+fso.GetBaseName("c:ogus")+"<br/>");
//删除新创立的文件夹。
fso.DeleteFolder("C:Bogus");
Response.Write("DeletedfolderC:Bogus"+"<br/>");
}
ASP分页函数
FunctionExportPageInfo(ByRefrs,curpage,i,LinkFile)
Dimretval,j,pageNumber,BasePage
retval="第"&curpage&"页/总"&rs.pagecount&"页"
retval=retval&"本页"&i&"条/总"&rs.recordcount&"条"
Ifcurpage=1Then
retval=retval&"首页前页"
Else
retval=retval&"<ahref="&LinkFile&"page=1>首页</a><ahref="&LinkFile&"page="&cstr(curpage-1)&">前页</a>"
EndIf
Ifcurpage=rs.pagecountThen
retval=retval&"后页末页"
Else
retval=retval&"<ahref="&LinkFile&"page="&cstr(curpage+1)&">后页</a><ahref="&LinkFile&"page="&cstr(rs.pagecount)&">末页</a>"
Endif
retval=retval&"<br/>"
BasePage=(curpage10)*10
IfBasePage>0Thenretval=retval&"<ahref="&LinkFile&"page="&(BasePage-9)&"><<</a>"
Forj=1to10
pageNumber=BasePage+j
IfPageNumber>rs.pagecountThenExitFor
IfpageNumber=Cint(curpage)Then
retval=retval&"<fontcolor=#FF0000>"&pageNumber&"</font>"
Else
retval=retval&"<ahref="&LinkFile&"page="&pageNumber&">"&pageNumber&"</a>"
EndIf
Next
Ifrs.pagecount>BasePageThenretval=retval&"<ahref="&LinkFile&"page="&(BasePage+11)&">>></a>"
ExportPageInfo=retval
EndFunction
使用
<%
adoPageRS.open"SELECT*FROMnewsORDERBYaddtimeDESC",conn,1,1
iferr.number0then
response.write"数据库操纵失利:"&err.description
else
ifadoPageRS.eofandadoPageRS.bofthen
response.write"没有纪录"
else
%>
<divalign="center">
<center>
<tablewidth="100%"border="0"cellspacing="1"cellpadding="2">
<trclass="big">
<tdwidth="60%">新闻标题</td>
<tdwidth="25%"align="center">日期</td>
<tdwidth="15%"align="center">操  作</td>
</tr>
<%
adoPageRS.pagesize=10
adoPageRS.absolutepage=curpage
fori=0to9
%>
<tr>
<td><%=adoPageRS("title")%></td>
<tdalign="center">
<%=adoPageRS("addtime")%>
</td>
<tdalign="center"><ahref=newsman.asp?action=edit&id=<%=adoPageRS("id")%>>编纂</a>
<ahref=javascript:confirmDel(<%=adoPageRS("id")%>)>删除</a></td>
</tr>
<%
adoPageRS.movenext
ifadoPageRS.eofthen
i=i+1
exitfor
EndIf
next
%>
<tralign="center">
<tdcolspan="3">
<%=ExportPageInfo(adoPageRS,curpage,i,"Newsman.asp?")%>
</td>
</tr>
</table>
</center>
</div>
asp经常用到的一些器材
<%=Request.ServerVariables("remote_addr")%>
FOReachiteminRequest.form
tempvalue=trim(Request(item))
tempvalue=Replace(tempvalue,chr(13)&chr(10),"<br/>")
tempvalue=Replace(tempvalue,"<br/><br/>","<br/>")
iftempvalue=""thentempvalue=0
Executeitem&"="""&tempvalue&""""
response.writeitem&"="&tempvalue&"<br/>"
next
response.writerequest("id")
response.end
if=""then
response.write"<scriptlanguage=javascript>window.alert()</script>"
response.write"<scriptlanguage=javascript>window.history.go(-1);</script>"
response.end
endif
<!--#includefile=""-->
<!--#includevirtual=""-->
sql="selectmax(id)frompack"
setRS=conn.execute(sql)
ifisnull(RS(0))then
id=1
else
id=RS(0)+1
endif
setrs=nothing

sql="insertintopack(id,strpackdm,strusername)values("&id&","&strpackdm&","&Session("username")&")"
setRS=conn.execute(sql)

sql="updatepackset"&Itemname&"="&tempvalue&"whereid="&id&""
ifItemname"id"then
response.writesql&"<br/>"
setrs=conn.execute(sql)

iferr.number0then
毛病处置
response.write"数据库操纵失利:"&err.description
err.clear
endif
Setrs=Nothing
Conn.close
Setconn=Nothing
dowhilenotrs.eofandrowcount>0
rowcount=rowcount-1
rs.MoveNext
dowhilenotrs.eof
rs.MoveNext
loop
foreachiteminrs2.fields
Executeitem.name&"="""&trim(rs2(""&item.name&""))&""""
next

functionMycn(str)
str=lcase(str)
str=replace(str,"","")
response.writestr
endfunction
dimconn
dimconnstr
onerrorresumenext
setconn=server.CreateObject("adodb.connection")
Connstr="driver=SQLServer;server="&servername&";uid="&username&";pwd="&password&";database="&datebasename&";"
Connstr="DBQ="+server.mappath(mydbpath&mdbname)+";DRIVER={MicrosoftAccessDriver(*.mdb)};"
response.writeConnstr
response.end
conn.Openconnstr
iferr0then
Response.Write"没法创建到数据库的毗连!"
endif
MD5不成逆加密算法的ASP完成实例
此为外洋转载函数,可将恣意字符转换为md516为字符加密情势,并且为不成逆转换。
<%
PrivateConstBITS_TO_A_BYTE=8
PrivateConstBYTES_TO_A_WORD=4
PrivateConstBITS_TO_A_WORD=32
Privatem_lOnBits(30)
Privatem_l2Power(30)
PrivateFunctionLShift(lvalue,iShiftBits)
IfiShiftBits=0Then
LShift=lvalue
ExitFunction
ElseIfiShiftBits=31Then
IflvalueAnd1Then
LShift=&H80000000
Else
LShift=0
EndIf
ExitFunction
ElseIfiShiftBits<0OriShiftBits>31Then
Err.Raise6
EndIf
If(lvalueAndm_l2Power(31-iShiftBits))Then
LShift=((lvalueAndm_lOnBits(31-(iShiftBits+1)))*m_l2Power(iShiftBits))Or&H80000000
Else
LShift=((lvalueAndm_lOnBits(31-iShiftBits))*m_l2Power(iShiftBits))
EndIf
EndFunction
PrivateFunctionRShift(lvalue,iShiftBits)
IfiShiftBits=0Then
RShift=lvalue
ExitFunction
ElseIfiShiftBits=31Then
IflvalueAnd&H80000000Then
RShift=1
Else
RShift=0
EndIf
ExitFunction
ElseIfiShiftBits<0OriShiftBits>31Then
Err.Raise6
EndIf
RShift=(lvalueAnd&H7FFFFFFE)m_l2Power(iShiftBits)
If(lvalueAnd&H80000000)Then
RShift=(RShiftOr(&H40000000m_l2Power(iShiftBits-1)))
EndIf
EndFunction
PrivateFunctionRotateLeft(lvalue,iShiftBits)
RotateLeft=LShift(lvalue,iShiftBits)OrRShift(lvalue,(32-iShiftBits))
EndFunction
PrivateFunctionAddUnsigned(lX,lY)
DimlX4
DimlY4
DimlX8
DimlY8
DimlResult
lX8=lXAnd&H80000000
lY8=lYAnd&H80000000
lX4=lXAnd&H40000000
lY4=lYAnd&H40000000
lResult=(lXAnd&H3FFFFFFF)+(lYAnd&H3FFFFFFF)
IflX4AndlY4Then
lResult=lResultXor&H80000000XorlX8XorlY8
ElseIflX4OrlY4Then
IflResultAnd&H40000000Then
lResult=lResultXor&HC0000000XorlX8XorlY8
Else
lResult=lResultXor&H40000000XorlX8XorlY8
EndIf
Else
lResult=lResultXorlX8XorlY8
EndIf
AddUnsigned=lResult
EndFunction
PrivateFunctionmd5_F(x,y,z)
md5_F=(xAndy)Or((Notx)Andz)
EndFunction
PrivateFunctionmd5_G(x,y,z)
md5_G=(xAndz)Or(yAnd(Notz))
EndFunction
PrivateFunctionmd5_H(x,y,z)
md5_H=(xXoryXorz)
EndFunction
PrivateFunctionmd5_I(x,y,z)
md5_I=(yXor(xOr(Notz)))
EndFunction
PrivateSubmd5_FF(a,b,c,d,x,s,ac)
a=AddUnsigned(a,AddUnsigned(AddUnsigned(md5_F(b,c,d),x),ac))
a=RotateLeft(a,s)
a=AddUnsigned(a,b)
EndSub
PrivateSubmd5_GG(a,b,c,d,x,s,ac)
a=AddUnsigned(a,AddUnsigned(AddUnsigned(md5_G(b,c,d),x),ac))
a=RotateLeft(a,s)
a=AddUnsigned(a,b)
EndSub
PrivateSubmd5_HH(a,b,c,d,x,s,ac)
a=AddUnsigned(a,AddUnsigned(AddUnsigned(md5_H(b,c,d),x),ac))
a=RotateLeft(a,s)
a=AddUnsigned(a,b)
EndSub
PrivateSubmd5_II(a,b,c,d,x,s,ac)
a=AddUnsigned(a,AddUnsigned(AddUnsigned(md5_I(b,c,d),x),ac))
a=RotateLeft(a,s)
a=AddUnsigned(a,b)
EndSub
PrivateFunctionConvertToWordArray(sMessage)
DimlMessageLength
DimlNumberOfWords
DimlWordArray()
DimlBytePosition
DimlByteCount
DimlWordCount
ConstMODULUS_BITS=512
ConstCONGRUENT_BITS=448
lMessageLength=Len(sMessage)
lNumberOfWords=(((lMessageLength+((MODULUS_BITS-CONGRUENT_BITS)BITS_TO_A_BYTE))(MODULUS_BITSBITS_TO_A_BYTE))+1)*(MODULUS_BITSBITS_TO_A_WORD)
ReDimlWordArray(lNumberOfWords-1)
lBytePosition=0
lByteCount=0
DoUntillByteCount>=lMessageLength
lWordCount=lByteCountBYTES_TO_A_WORD
lBytePosition=(lByteCountModBYTES_TO_A_WORD)*BITS_TO_A_BYTE
lWordArray(lWordCount)=lWordArray(lWordCount)OrLShift(Asc(Mid(sMessage,lByteCount+1,1)),lBytePosition)
lByteCount=lByteCount+1
Loop
lWordCount=lByteCountBYTES_TO_A_WORD
lBytePosition=(lByteCountModBYTES_TO_A_WORD)*BITS_TO_A_BYTE
lWordArray(lWordCount)=lWordArray(lWordCount)OrLShift(&H80,lBytePosition)
lWordArray(lNumberOfWords-2)=LShift(lMessageLength,3)
lWordArray(lNumberOfWords-1)=RShift(lMessageLength,29)
ConvertToWordArray=lWordArray
EndFunction
PrivateFunctionWordToHex(lvalue)
DimlByte
DimlCount
ForlCount=0To3
lByte=RShift(lvalue,lCount*BITS_TO_A_BYTE)Andm_lOnBits(BITS_TO_A_BYTE-1)
WordToHex=WordToHex&Right("0"&Hex(lByte),2)
Next
EndFunction
Top

MD5不成逆加密算法的ASP完成实例
--------------------------------------
PublicFunctionMD5(sMessage)
m_lOnBits(0)=CLng(1)
m_lOnBits(1)=CLng(3)
m_lOnBits(2)=CLng(7)
m_lOnBits(3)=CLng(15)
m_lOnBits(4)=CLng(31)
m_lOnBits(5)=CLng(63)
m_lOnBits(6)=CLng(127)
m_lOnBits(7)=CLng(255)
m_lOnBits(8)=CLng(511)
m_lOnBits(9)=CLng(1023)
m_lOnBits(10)=CLng(2047)
m_lOnBits(11)=CLng(4095)
m_lOnBits(12)=CLng(8191)
m_lOnBits(13)=CLng(16383)
m_lOnBits(14)=CLng(32767)
m_lOnBits(15)=CLng(65535)
m_lOnBits(16)=CLng(131071)
m_lOnBits(17)=CLng(262143)
m_lOnBits(18)=CLng(524287)
m_lOnBits(19)=CLng(1048575)
m_lOnBits(20)=CLng(2097151)
m_lOnBits(21)=CLng(4194303)
m_lOnBits(22)=CLng(8388607)
m_lOnBits(23)=CLng(16777215)
m_lOnBits(24)=CLng(33554431)
m_lOnBits(25)=CLng(67108863)
m_lOnBits(26)=CLng(134217727)
m_lOnBits(27)=CLng(268435455)
m_lOnBits(28)=CLng(536870911)
m_lOnBits(29)=CLng(1073741823)
m_lOnBits(30)=CLng(2147483647)
m_l2Power(0)=CLng(1)
m_l2Power(1)=CLng(2)
m_l2Power(2)=CLng(4)
m_l2Power(3)=CLng(8)
m_l2Power(4)=CLng(16)
m_l2Power(5)=CLng(32)
m_l2Power(6)=CLng(64)
m_l2Power(7)=CLng(128)
m_l2Power(8)=CLng(256)
m_l2Power(9)=CLng(512)
m_l2Power(10)=CLng(1024)
m_l2Power(11)=CLng(2048)
m_l2Power(12)=CLng(4096)
m_l2Power(13)=CLng(8192)
m_l2Power(14)=CLng(16384)
m_l2Power(15)=CLng(32768)
m_l2Power(16)=CLng(65536)
m_l2Power(17)=CLng(131072)
m_l2Power(18)=CLng(262144)
m_l2Power(19)=CLng(524288)
m_l2Power(20)=CLng(1048576)
m_l2Power(21)=CLng(2097152)
m_l2Power(22)=CLng(4194304)
m_l2Power(23)=CLng(8388608)
m_l2Power(24)=CLng(16777216)
m_l2Power(25)=CLng(33554432)
m_l2Power(26)=CLng(67108864)
m_l2Power(27)=CLng(134217728)
m_l2Power(28)=CLng(268435456)
m_l2Power(29)=CLng(536870912)
m_l2Power(30)=CLng(1073741824)

Dimx
Dimk
DimAA
DimBB
DimCC
DimDD
Dima
Dimb
Dimc
Dimd
ConstS11=7
ConstS12=12
ConstS13=17
ConstS14=22
ConstS21=5
ConstS22=9
ConstS23=14
ConstS24=20
ConstS31=4
ConstS32=11
ConstS33=16
ConstS34=23
ConstS41=6
ConstS42=10
ConstS43=15
ConstS44=21
x=ConvertToWordArray(sMessage)
a=&H67452301
b=&HEFCDAB89
c=&H98BADCFE
d=&H10325476
Fork=0ToUBound(x)Step16
AA=a
BB=b
CC=c
DD=d
md5_FFa,b,c,d,x(k+0),S11,&HD76AA478
md5_FFd,a,b,c,x(k+1),S12,&HE8C7B756
md5_FFc,d,a,b,x(k+2),S13,&H242070DB
md5_FFb,c,d,a,x(k+3),S14,&HC1BDCEEE
md5_FFa,b,c,d,x(k+4),S11,&HF57C0FAF
md5_FFd,a,b,c,x(k+5),S12,&H4787C62A
md5_FFc,d,a,b,x(k+6),S13,&HA8304613
md5_FFb,c,d,a,x(k+7),S14,&HFD469501
md5_FFa,b,c,d,x(k+8),S11,&H698098D8
md5_FFd,a,b,c,x(k+9),S12,&H8B44F7AF
md5_FFc,d,a,b,x(k+10),S13,&HFFFF5BB1
md5_FFb,c,d,a,x(k+11),S14,&H895CD7BE
md5_FFa,b,c,d,x(k+12),S11,&H6B901122
md5_FFd,a,b,c,x(k+13),S12,&HFD987193
md5_FFc,d,a,b,x(k+14),S13,&HA679438E
md5_FFb,c,d,a,x(k+15),S14,&H49B40821
md5_GGa,b,c,d,x(k+1),S21,&HF61E2562
md5_GGd,a,b,c,x(k+6),S22,&HC040B340
md5_GGc,d,a,b,x(k+11),S23,&H265E5A51
md5_GGb,c,d,a,x(k+0),S24,&HE9B6C7AA
md5_GGa,b,c,d,x(k+5),S21,&HD62F105D
md5_GGd,a,b,c,x(k+10),S22,&H2441453
md5_GGc,d,a,b,x(k+15),S23,&HD8A1E681
md5_GGb,c,d,a,x(k+4),S24,&HE7D3FBC8
md5_GGa,b,c,d,x(k+9),S21,&H21E1CDE6
md5_GGd,a,b,c,x(k+14),S22,&HC33707D6
md5_GGc,d,a,b,x(k+3),S23,&HF4D50D87
md5_GGb,c,d,a,x(k+8),S24,&H455A14ED
md5_GGa,b,c,d,x(k+13),S21,&HA9E3E905
md5_GGd,a,b,c,x(k+2),S22,&HFCEFA3F8
md5_GGc,d,a,b,x(k+7),S23,&H676F02D9
md5_GGb,c,d,a,x(k+12),S24,&H8D2A4C8A
md5_HHa,b,c,d,x(k+5),S31,&HFFFA3942
md5_HHd,a,b,c,x(k+8),S32,&H8771F681
md5_HHc,d,a,b,x(k+11),S33,&H6D9D6122
md5_HHb,c,d,a,x(k+14),S34,&HFDE5380C
md5_HHa,b,c,d,x(k+1),S31,&HA4BEEA44
md5_HHd,a,b,c,x(k+4),S32,&H4BDECFA9
md5_HHc,d,a,b,x(k+7),S33,&HF6BB4B60
md5_HHb,c,d,a,x(k+10),S34,&HBEBFBC70
md5_HHa,b,c,d,x(k+13),S31,&H289B7EC6
md5_HHd,a,b,c,x(k+0),S32,&HEAA127FA
md5_HHc,d,a,b,x(k+3),S33,&HD4EF3085
md5_HHb,c,d,a,x(k+6),S34,&H4881D05
md5_HHa,b,c,d,x(k+9),S31,&HD9D4D039
md5_HHd,a,b,c,x(k+12),S32,&HE6DB99E5
md5_HHc,d,a,b,x(k+15),S33,&H1FA27CF8
md5_HHb,c,d,a,x(k+2),S34,&HC4AC5665
md5_IIa,b,c,d,x(k+0),S41,&HF4292244
md5_IId,a,b,c,x(k+7),S42,&H432AFF97
md5_IIc,d,a,b,x(k+14),S43,&HAB9423A7
md5_IIb,c,d,a,x(k+5),S44,&HFC93A039
md5_IIa,b,c,d,x(k+12),S41,&H655B59C3
md5_IId,a,b,c,x(k+3),S42,&H8F0CCC92
md5_IIc,d,a,b,x(k+10),S43,&HFFEFF47D
md5_IIb,c,d,a,x(k+1),S44,&H85845DD1
md5_IIa,b,c,d,x(k+8),S41,&H6FA87E4F
md5_IId,a,b,c,x(k+15),S42,&HFE2CE6E0
md5_IIc,d,a,b,x(k+6),S43,&HA3014314
md5_IIb,c,d,a,x(k+13),S44,&H4E0811A1
md5_IIa,b,c,d,x(k+4),S41,&HF7537E82
md5_IId,a,b,c,x(k+11),S42,&HBD3AF235
md5_IIc,d,a,b,x(k+2),S43,&H2AD7D2BB
md5_IIb,c,d,a,x(k+9),S44,&HEB86D391
a=AddUnsigned(a,AA)
b=AddUnsigned(b,BB)
c=AddUnsigned(c,CC)
d=AddUnsigned(d,DD)
Next
MD5=LCase(WordToHex(a)&WordToHex(b)&WordToHex(c)&WordToHex(d))
MD5=LCase(WordToHex(b)&WordToHex(c))Icropthistofit16bytedatabasepassword:D
EndFunction
Response.Write"123456的加密了局为["&md5("123456")&"]"
%>
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。
简单生活 该用户已被删除
沙发
发表于 2015-1-18 22:49:14 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
透明 该用户已被删除
板凳
发表于 2015-1-27 09:10:32 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
小魔女 该用户已被删除
地板
发表于 2015-2-5 09:01:32 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
兰色精灵 该用户已被删除
5#
发表于 2015-2-11 08:29:25 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
飘灵儿 该用户已被删除
6#
发表于 2015-3-2 04:06:38 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-11 02:51:34 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-17 19:11:08 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 01:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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