用 ScriptEncode 对 ASP 加密

作者:未知 来源:互联网 日期:2006-2-7

使用 Script Encoder 对 ASP 页面进行加密,操作简单、收效良好。Script Encoder 方法具有许多优点:

1.HTML 仍具有很好的可编辑性。

Script Encoder 只加密在 HTML 页面中嵌入的 ASP 代码,其他部分仍保持不变,这就使得我们仍然可以使用 FrontPage 或 Dreamweaver 等常用网页编辑工具对 HTML 部分进行修改、完善,只是不能对 ASP 加密部分进行修改,否则将导致文件失效。

2.操作简单。

只要掌握几个命令行参数即可。Script Encoder 的运行程序是 screnc.exe,其使用方法如下:

screnc [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile outputfile

其中的参数含义如下:

  • s:屏蔽屏幕输出;
  • f:指定输出文件是否覆盖同名输入文件;
  • xl:是否不在 .asp 文件的顶部添加 @Language 指令;
  • l:defLanguag 指定缺省的脚本语言(htm 网页默认是 JScript;asp 网页默认是 vbscript。用法:-l vbscript。ITPOW编辑注)
  • e:defExtension 指定待加密文件的扩展名。

3.可以批量加密文件。

使用 Script Encoder 可以对当前目录中的所有的 ASP 文件进行加密,并把加密后的文件统一输出到
相应的目录中。例如:

screnc *.asp c:\temp

4. Script Encoder 是免费软件。

该加密软件可以从微软网站下载

常见问题和注意事项

1、在 JOY ASP 中几次看到有网友使用 Script Encoder 时出现如下错误:

"Script Encoder object <"Scripting.Encoder"> not found "

其原因:是使用 Script Encoder 需要 Script Engine 5.0 或以上脚本引擎的支持。

解决的办法有两个,升级浏览器到 IE5 或安装 Script Engine 5.0。

2、在加密 Global.asa 时,加密完成后访问出现:

Active Server Pages 错误 'ASP 0137'
无效通用脚本
global.asa, 行 1
Script 块必须是允许的 Global.asa 过程之一。< %...% > 中的 Script 原语不允许在global.asa 文件中。允许的过程只能是 Application_OnStart , Application_OnEnd , Session_OnStart , 或 Session_OnEnd。

加密后的 global.asa 文件为:

<%@ LANGUAGE = VBScript.Encode %><SCRIPT LANGUAGE=VBScript.Encode
RUNAT=Server>#@~^nAIAAA==@#@&?i~Pzww^k1CYbWU{}xjOmDY@#@&@#@&BP</SCRIPT>
<SCRIPT LANGUAGE=VBScript.Encode RUNAT=Server>#@~^OgEAAA==@#@&?i~Pzww^k
1CYbWU{}x3U9@#@&@#@&P,P?O~sbVr8Ln^DPxPUnD7+. ;D+COr==^#~@</SCRIPT>
<SCRIPT LANGUAGE=VBScript.Encode RUNAT=Server>#@~^DQMAAA==@#@&?i~PU+/kk
KU{}xjYmDO@#@&@#@&E~NnJ*Px~rCl1V+MJ@#@&3Hf,?`A@#@&ftEAAA==^#~@</SCRIPT>
<SCRIPT LANGUAGE=VBScript.Encode RUNAT=Server>#@~^WwIAAA==@#@&?i~PU+/kk
KU{}x3x9@#@&(6P?d/bWxvEj{!/DmmG[JbP@!@*PrCC^0+DE~:tnx@#@&</SCRIPT>

出现这个错误的原因是:在加密完的 global.asa 文件顶部被写入了 <%@ LANGUAGE = VBScript.Encode %>。

解决的办法是手动删去这一行或者使用 /xl 参数加密即可。

3、Script Encoder 对 Remote Scripting 无效。

相关文章