注意:本文讨论的是关于网页代码级的加密方法,而非程序级的加密索
关于网页加密,一般是使用unescape函数,它只是简单地将一些特定的符号、中文、字符变换成特定的编码,而对于英文,则基本上是原文显示,加密效果对比如下:
原代码:
<html>
<head>
</head>
<body>
<b>ok</b>
</body>
</html>
加密后的代码:
<script>
<!--
document.write(unescape("%3Chtml%3E%0D%0A%20%20%3Chead%3E%0D%0A%20%20%3C/head%3E%0D%0A%20%20%3Cbody%3E%0D%0A%20%20%20%20%3Cb%3Eok%3C/b%3E%0D%0A%20%20%3C/body%3E%0D%0A%3C/html%3E"));
//-->
</script>
需要指出的是,这种在线加密一般同时也都提供了解密功能,所以,这种加密是没有什么意义的,徒增了网页的体积而已。
下面我来介绍另一种加密方式:JSCRIPT.ENCODE & VBSCRIPT.ENCODE(注意:它要求浏览者必需使用IE5及其上的浏览器)
它可以将JS或VBS或ASP代码编译成一串完整的状如乱码的字符串,对其中任何一个字符的修改将直接导致整个代码的不可用。它的安全性和保证代码的完整性方面是前一种方法所不可比拟的。其加密效果对比如下:
原代码:
alert("hello")
加密后的代码:
<script language=jscript.encode>#@~^EwAAAA==C^+.D`rt+^VKE#p@#@&EwUAAA==^#~@</script>
从中找不到一点原代码的影子。
要使用这种加密方式,首先需要到微软网站下载一个SCRENC脚本编码器,请注意,它是一个在DOS提示符下使用的命令,但安装之后,会有相关的非常详细的图形界面下的帮助文件。
以下是该程序的语法解释:
描述
对脚本编写源代码进行加密,使其不会轻易地被用户查看或修改。
语法
SCRENC [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile outputfile
脚本加密程序语法的组成部分如下:
部分 描述
/s 可选的。 开关,它指定脚本加密程序的工作状态是静态的,即产生无屏幕输出。如省略,缺省为提供冗余输出。
/f 可选的。指定输入文件将被输出文件覆盖。 注意,该选项会破坏您原来的输入源代码。如省略,输出文件不会被覆盖。
/xl 可选的。指定不把 @language 伪指令添加到 .ASP 文件顶部。如省略,@language 指令添加到所有的 .ASP 文件中。
/l defLanguage 可选的。指定在加密过程中使用的缺省脚本编写语言 (JScript? 或 VBScript)。被加密文件中的脚本块如不包含语言属性,即被认为是由指定语言写成。 如省略,JScript 是 HTML 页和脚本小程序的缺省语言,VBScript 是动态网页的缺省语言。对于普通文本文件,由文件扩展名 ( .js 或 .vbs)决定缺省脚本编写语言。
/e defExtension 可选的。把输入文件与一个特定的文件类型相关联。当输入文件的扩展名不能明显显示出文件的类型时,即,当输入文件扩展名不是可识别的扩展名,但文件内容又可以归为可识别的类型时,使用该开关。该选项无缺省值。如果遇到一个带不可识别的扩展名的文件,且该选项未被指定,则脚本加密程序不能处理该不可识别的文件。可识别的文件扩展名有 asa、asp、cdx、htm、html、js、sct和 vbs。
inputfile 必需的。要被加密的文件名称,包括相对于当前目录的任何需要的路径信息。
outputfile 必需的。要生成的输出文件的名称,包括相对于当前目录的任何需要的路径信息。