ASP网站制作之批量对加密的asp代码解密的asp程序
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。程序|加密|解密<%@Language="JavaScript"%><%
/*
*---------------decode.asp-----------------
*功效:遍历某个目次下的一切文件,对加密过的.asp文件
*举行解密,并写进源文件中.
*实例:单个文件解密
*Response.Write(DncodeFile(Server.MapPath("conn.asp")));
*实例:目次下一切文件解密.
*DncodeFolderFiles(Server.MapPath("xml"))
*author:wanghr100(灰豆宝宝.net)
*update:2004-5-1711:31
*---------------decode.asp-----------------
*/
functionDncodeFile(sFilePath)
{
/*
*---------------DncodeFile(sFilePath)-----------------
*DncodeFile(sFilePath)
*功效:翻开文件sFilePath,Encode解密,重写该文件.
*参数:sFilePath,字符串,文件的路径.
*前往:sFilePath,文件的路径.
*实例:Response.Write(DncodeFile(Server.MapPath("conn.asp")));
*author:wanghr100(灰豆宝宝.net)
*update:2004-5-170:58
*---------------DncodeFile(sFilePath)-----------------
*/
varForReading=1,ForWriting=2,ForAppending=8;
varfso=Server.CreateObject("Scripting.FileSystemObject");
varf=fso.OpenTextFile(sFilePath,ForReading,true);
sFileText=f.ReadAll();
f.Close();
sDncodeText=strdec(sFileText)
varf=fso.OpenTextFile(sFilePath,ForWriting,true);
f.Write(sDncodeText);
f.Close();
//returnsDncodeText;
returnsFilePath;
}
functionGetFilesPath(sFolderPath)
{
/*
*---------------GetFilesPath(sFolderPath)-----------------
*GetFilesPath(sFolderPath)
*功效:遍历sFolderPath目次下的一切文件.前往数组.存储文件路径.
*参数:sFolderPath,字符串,目次相对路径.
*实例:Response.Write(GetFilesPath(Server.MapPath("xml")))
*update:2004-5-128:33
*author:wanghr100(灰豆宝宝.net)
*---------------GetFilesPath(sFolderPath)-----------------
*/
varsFilePath=newArray();
varfso=Server.CreateObject("Scripting.FileSystemObject");
varoFolder=fso.GetFolder(sFolderPath);
varoSubFolders=oFolder.SubFolders;
varoFiles=oFolder.Files;
icount=oFiles.Count;
varenmFiles=newEnumerator(oFiles);
for(;!enmFiles.atEnd();enmFiles.moveNext())
{
sFilePath=enmFiles.item().Path
}
varenmFolders=newEnumerator(oSubFolders);
for(;!enmFolders.atEnd();enmFolders.moveNext())
{
/*Old数构成了多维.*/
//sFilePath=GetFilesPath(enmFolders.item().Path);
/*Add2004-5-1711:09只为一维数组*/
sFilePath=sFilePath.concat(GetFilesPath(enmFolders.item().Path));
}
returnsFilePath;
}
functionGetFileType(sFileName)
{
/*
*---------------GetFileType(sFileName)-----------------
*GetFileType(sFileName)
*功效:经由过程后缀,获得sFileName的文件范例.
*参数:sFileName,字符串,文件名.
*实例:Response.Write(GetFileType("decode.asp"))
*update:2004-5-138:33
*author:wanghr100(灰豆宝宝.net)
*---------------GetFileType(sFileName)-----------------
*/
sFileName=String(sFileName);
returnsFileName.split(".");
}
/*Start解密完成:李光辉Start*/
functionscrencode(s,l)
{enc=newActiveXObject("Scripting.Encoder");
returnenc.EncodeScriptFile("."+l,s,0,l+"cript");
}
varSTATE_COPY_INPUT=100
varSTATE_READLEN=101
varSTATE_DECODE=102
varSTATE_UNESCAPE=103
varpick_encoding=newArray(
1,2,0,1,2,0,2,0,0,2,0,2,1,0,2,0,
1,0,2,0,1,1,2,0,0,2,1,0,2,0,0,2,
1,1,0,2,0,2,0,1,0,1,1,2,0,1,0,2,
1,0,2,0,1,1,2,0,0,1,1,2,0,1,0,2
)
varrawData=newArray(
0x64,0x37,0x69,0x50,0x7E,0x2C,0x22,0x5A,0x65,0x4A,0x45,0x72,
0x61,0x3A,0x5B,0x5E,0x79,0x66,0x5D,0x59,0x75,0x5B,0x27,0x4C,
0x42,0x76,0x45,0x60,0x63,0x76,0x23,0x62,0x2A,0x65,0x4D,0x43,
0x5F,0x51,0x33,0x7E,0x53,0x42,0x4F,0x52,0x20,0x52,0x20,0x63,
0x7A,0x26,0x4A,0x21,0x54,0x5A,0x46,0x71,0x38,0x20,0x2B,0x79,
0x26,0x66,0x32,0x63,0x2A,0x57,0x2A,0x58,0x6C,0x76,0x7F,0x2B,
0x47,0x7B,0x46,0x25,0x30,0x52,0x2C,0x31,0x4F,0x29,0x6C,0x3D,
0x69,0x49,0x70,0x3F,0x3F,0x3F,0x27,0x78,0x7B,0x3F,0x3F,0x3F,
0x67,0x5F,0x51,0x3F,0x3F,0x3F,0x62,0x29,0x7A,0x41,0x24,0x7E,
0x5A,0x2F,0x3B,0x66,0x39,0x47,0x32,0x33,0x41,0x73,0x6F,0x77,
0x4D,0x21,0x56,0x43,0x75,0x5F,0x71,0x28,0x26,0x39,0x42,0x78,
0x7C,0x46,0x6E,0x53,0x4A,0x64,0x48,0x5C,0x74,0x31,0x48,0x67,
0x72,0x36,0x7D,0x6E,0x4B,0x68,0x70,0x7D,0x35,0x49,0x5D,0x22,
0x3F,0x6A,0x55,0x4B,0x50,0x3A,0x6A,0x69,0x60,0x2E,0x23,0x6A,
0x7F,0x09,0x71,0x28,0x70,0x6F,0x35,0x65,0x49,0x7D,0x74,0x5C,
0x24,0x2C,0x5D,0x2D,0x77,0x27,0x54,0x44,0x59,0x37,0x3F,0x25,
0x7B,0x6D,0x7C,0x3D,0x7C,0x23,0x6C,0x43,0x6D,0x34,0x38,0x28,
0x6D,0x5E,0x31,0x4E,0x5B,0x39,0x2B,0x6E,0x7F,0x30,0x57,0x36,
0x6F,0x4C,0x54,0x74,0x34,0x34,0x6B,0x72,0x62,0x4C,0x25,0x4E,
0x33,0x56,0x30,0x56,0x73,0x5E,0x3A,0x68,0x73,0x78,0x55,0x09,
0x57,0x47,0x4B,0x77,0x32,0x61,0x3B,0x35,0x24,0x44,0x2E,0x4D,
0x2F,0x64,0x6B,0x59,0x4F,0x44,0x45,0x3B,0x21,0x5C,0x2D,0x37,
0x68,0x41,0x53,0x36,0x61,0x58,0x58,0x7A,0x48,0x79,0x22,0x2E,
0x09,0x60,0x50,0x75,0x6B,0x2D,0x38,0x4E,0x29,0x55,0x3D,0x3F
)
vartransformed=newArray()
for(vari=0;i<3;i++)transformed=newArray()
for(vari=31;i<=126;i++)for(varj=0;j<3;j++)transformed]=(i==31)?9:i
vardigits=newArray()
for(vari=0;i<26;i++)
{
digits["A".charCodeAt(0)+i]=i
digits["a".charCodeAt(0)+i]=i+26
}
for(vari=0;i<10;i++)digits["0".charCodeAt(0)+i]=i+52
digits=62
digits=63
functionunescape(char)
{
varescapes="#&!*$"
varescaped="
@"
if(char.charCodeAt(0)>126)returnchar
if(escapes.indexOf(char)!=-1)returnescaped.substr(escapes.indexOf(char),1)
return"?"
}
functiondecodeBase64(string)
{
varval=0
val+=(digits<<2)
val+=(digits>>4)
val+=(digits&0xf)<<12
val+=((digits>>2)<<8)
val+=((digits&0x3)<<22)
val+=(digits<<16)
returnval
}
functionstrdec(encodingString)
{
varmarker="#@~^"
varstringIndex=0
varscriptIndex=-1
varunEncodingIndex=0
varchar=null
varencodingLength=unEncodinglength=0
varstate=STATE_COPY_INPUT
varunEncodingString=""
varre,arr
while(state)
{
switch(state)
{
case(STATE_COPY_INPUT):
scriptIndex=encodingString.indexOf(marker,stringIndex)
if(scriptIndex!=-1)
{
unEncodingString+=encodingString.substring(stringIndex,scriptIndex)
scriptIndex+=marker.length
state=STATE_READLEN
}
else
{
stringIndex=stringIndex==0?0:stringIndex
unEncodingString+=encodingString.substr(stringIndex,encodingString.length)
state=0
}
break
case(STATE_READLEN):
encodingLength=encodingString.substr(scriptIndex,6)
unEncodinglength=decodeBase64(encodingLength)
scriptIndex+=(6+"==".length)
state=STATE_DECODE
break
case(STATE_DECODE):
if(!unEncodinglength)
{
stringIndex=scriptIndex+"DQgAAA==^#~@".length
unEncodingIndex=0
state=STATE_COPY_INPUT
break
}
char=encodingString.substr(scriptIndex,1)
if(char=="@")state=STATE_UNESCAPE
else
{
if(char.charCodeAt(0)<0xFF)
{
unEncodingString+=String.fromCharCode(transformed])
unEncodingIndex++
}
else
{
unEncodingString+=char
}
scriptIndex++
unEncodinglength--
break
}
caseSTATE_UNESCAPE:
unEncodingString+=unescape(encodingString.substr(++scriptIndex,1))
scriptIndex++;unEncodinglength-=2
unEncodingIndex++
state=STATE_DECODE
break
}
}
re=newRegExp("(JScript|VBscript).encode","gmi")
while(arr=re.exec(unEncodingString))unEncodingString=RegExp.leftContext+RegExp.$1+RegExp.rightContext
returnunEncodingString
}
/*End解密完成:李光辉End*/
functionDncodeFolderFiles(sFolderPath)
{
/*
*---------------DncodeFolderFiles(sFolderPath)-----------------
*DncodeFolderFiles(sFolderPath)
*功效:遍历sFolderPath目次下的一切文件,对加密过的.asp文件
*举行解密,并写进源文件中.
*实例:DncodeFolderFiles(Server.MapPath("xml"));
*author:wanghr100(灰豆宝宝.net)
*update:2004-5-178:07
*---------------DncodeFolderFiles(sFolderPath)-----------------
*/
vararrFiles=GetFilesPath(sFolderPath)
for(vari=0;i<arrFiles.length;i++)
{
if(GetFileType(arrFiles)=="asp")
{
Response.Write(DncodeFile(arrFiles))
Response.Write("OK.<br>")
}
}
}
//获得xml目次下的一切文件.解密.
DncodeFolderFiles(Server.MapPath("xml"))
//获得t.asp.解密.
//Response.Write(DncodeFile(Server.MapPath("t.asp")))
%>
当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题 没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的 ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。 因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
页:
[1]