關(guān)于幾種asp源代碼的加密方法
本文章給朋友們分享學(xué)習(xí)到的是關(guān)于幾種asp源代碼的加密方法,希望對(duì)大家能有所幫助。
1,用HTMLPower來(lái)加密
2,將代碼封裝成DLL
3,ASP風(fēng)火輪
ASP原碼加密工具介紹
總是會(huì)有很多方法暴露ASP的原程序,造成數(shù)據(jù)庫(kù)的密碼 路徑都可以輕易被其他人搞到,所以對(duì)ASP程序?qū)嵭屑用芴幚硎莻(gè)不錯(cuò)的解決方法。下面來(lái)介紹一個(gè)工具如果大家感興趣可以來(lái)我主頁(yè)下載。
minisql.yeah.net 熏衣草樂(lè)園
腳本編碼器是一種簡(jiǎn)單的命令行工具,它使腳本設(shè)計(jì)者可以對(duì)最終的腳本進(jìn)行編碼,從而使 Web 主機(jī)和 Web 客戶(hù)不能查看或修改它們的源代碼。注意,這種編碼只能防止別人在無(wú)意中查看到您的代碼,并不能防止蓄意黑客查看您的編碼內(nèi)容及其方法。
Web 設(shè)計(jì)者在 Web 頁(yè)和服務(wù)器的 Active Sever Pages (.ASP)上編寫(xiě)腳本,足以在網(wǎng)頁(yè)上添加您能想象到的所有功能。此外,Windows? Scripting Host(WSH) 和許多其他的應(yīng)用程序也進(jìn)行腳本編寫(xiě),并取得了同樣好的效果。
到目前為止,使用腳本的一個(gè)缺點(diǎn)是它既不能保護(hù)腳本內(nèi)的知識(shí)產(chǎn)權(quán),又不能保證用戶(hù)所看到的就是您所創(chuàng)造的成果。聰明的運(yùn)算法則和精心設(shè)計(jì)的腳本總是能完全被看見(jiàn),因?yàn)樗鼈兪亲鳛槠胀ㄎ淖謨?chǔ)存的 。因此,每一級(jí)的腳本用戶(hù)都能看到腳本設(shè)計(jì)者的原始編碼,并能取出、修改它們,從而據(jù)為己有。顯然,如果您正想在某一競(jìng)爭(zhēng)激烈的領(lǐng)域占上風(fēng),這對(duì)您是非常不利的。
隨著腳本小程序的引進(jìn),保護(hù)源代碼變得更加重要。腳本設(shè)計(jì)者都希望使用這一簡(jiǎn)單的部件層次結(jié)構(gòu),但卻并不一定想與他人共享自己的源代碼。只要腳本經(jīng)編碼后,改變結(jié)果文件的任一部分都會(huì)使得腳本 無(wú)法執(zhí)行,這樣,就保證了您編碼腳本的絕對(duì)完整。
腳本編碼器只對(duì)腳本代碼進(jìn)行編碼,文件的其他內(nèi)容不動(dòng)且以普通文本形式顯示。要使用腳本編碼器,以通常方法對(duì)文本進(jìn)行開(kāi)發(fā)和調(diào)試,然后使用該實(shí)用程序?qū)ψ罱K的腳本進(jìn)行編碼。 腳本編碼器在源代碼中使用標(biāo)記來(lái)標(biāo)識(shí)編碼開(kāi)始的位置。
對(duì)于 Visual Basic? Scripting Edition (VBScript),如下示例顯示了如何使用編碼標(biāo)記來(lái)顯示普通文本的版權(quán)信息:
'來(lái)自www.w3sky.com
<SCRIPT LANGUAGE="VBScript">
'Copyright? 1998. XYZ Productions. All rights reserved.
'**開(kāi)始編碼**
' 這里放您的代碼.
</SCRIPT>
在 JScript? 中,編碼標(biāo)記如下:
<SCRIPT LANGUAGE="JScript">
//Copyright? 1998. ZYX Productions. All rights reserved.
//**開(kāi)始編碼**
// 這里放您的代碼.
</SCRIPT>
當(dāng)腳本編碼器被調(diào)用時(shí),在開(kāi)始標(biāo)記前,腳本塊內(nèi)的內(nèi)容保持不變,而其他內(nèi)容被編碼。因此,如果開(kāi)始標(biāo)記被省略,則腳本編碼塊內(nèi)的所有內(nèi)容均被編碼,但如果開(kāi)始標(biāo)記在腳本編碼塊的最后,則不對(duì)任 何內(nèi)容進(jìn)行編碼。
在編碼發(fā)生后。您應(yīng)該知道 <SCRIPT> 標(biāo)記中的語(yǔ)言指示符已改變。對(duì)于 VBScript,新的指示符如下:
<SCRIPT LANGUAGE="VBScript.Encode">
對(duì)于 JScript (或 java script),新的指示符如下:
<SCRIPT LANGUAGE="JScript.Encode">
腳本編碼器在如下所示的 MS-DOS 命令行或“運(yùn)行”對(duì)話框中被調(diào)用:
SRCENC [switches] inputfile outputfile
描述
對(duì)腳本編寫(xiě)源代碼進(jìn)行編碼,使其不會(huì)輕易地被用戶(hù)查看或修改。
語(yǔ)法
SCRENC [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile outputfile
腳本編碼器語(yǔ)法的組成部分如下:
部分 描述
/s 可選的。 開(kāi)關(guān),它指定腳本編碼器的工作狀態(tài)是靜態(tài)的,即產(chǎn)生無(wú)屏幕輸出。如省略,缺省為提供冗余輸出。
/f 可選的。指定輸入文件將被輸出文件覆蓋。 注意,該選項(xiàng)會(huì)破壞您原來(lái)的輸入源代碼。如省略,輸出文件不會(huì)被覆蓋。
/xl 可選的。指定不把 @language 偽指令添加到 .ASP 文件頂部。如省略,@language 指令添加到所有的 .ASP 文件中。
/l defLanguage 可選的。指定在編碼過(guò)程中使用的缺省腳本編寫(xiě)語(yǔ)言 (JScript? 或 VBScript)。被編碼文件中的腳本塊如不包含語(yǔ)言屬性,即被認(rèn)為是由指定語(yǔ)言寫(xiě)成。 如省略,JScript 是 HTML 頁(yè)和腳本小程序的缺省語(yǔ)言,VBScript 是動(dòng)態(tài)網(wǎng)頁(yè)的缺省語(yǔ)言。對(duì)于普通文本文件,由文件擴(kuò)展名 ( .js 或 .vbs)決定缺省腳本編寫(xiě)語(yǔ)言。
/e defExtension 可選的。把輸入文件與一個(gè)特定的文件類(lèi)型相關(guān)聯(lián)。當(dāng)輸入文件的擴(kuò)展名不能明顯顯示出文件的類(lèi)型時(shí),即,當(dāng)輸入文件擴(kuò)展名不是可識(shí)別的擴(kuò)展名,但文件內(nèi)容又可以歸為可識(shí)別的類(lèi)型時(shí),使用該開(kāi)關(guān)。 該選項(xiàng)無(wú)缺省值。如果遇到一個(gè)帶不可識(shí)別的擴(kuò)展名的文件,且該選項(xiàng)未被指定,則腳本編碼器不能處理該不可識(shí)別的文件?勺R(shí)別的文件擴(kuò)展名有 asa、asp、cdx、htm、html、js、sct和 vbs。
inputfile 必需的。要被編碼的文件名稱(chēng),包括相對(duì)于當(dāng)前目錄的任何需要的路徑信息。
outputfile 必需的。要生成的輸出文件的名稱(chēng),包括相對(duì)于當(dāng)前目錄的任何需要的路徑信息。
'來(lái)自www.w3sky.com
說(shuō)明
如下是腳本編寫(xiě)器能處理的四種文件:
ASP。該格式由一個(gè)文本動(dòng)態(tài)網(wǎng)頁(yè)組成,此網(wǎng)頁(yè)在 <SCRIPT> ... </SCRIPT> 標(biāo)記或 <% ... %> 標(biāo)記內(nèi)包含有效的 HTML 和內(nèi)嵌腳本塊。使用該格式的應(yīng)用程序包括 Microsoft? Internet Information Services (IIS)。識(shí)別文件擴(kuò)展名有 .asp、.asa 和 .cdx。
HTML。該格式由一個(gè)包含有效的 HTML 和內(nèi)嵌腳本塊的文本文件組成。使用該腳本格式編寫(xiě)的應(yīng)用程序包括 Microsoft FrontPage?, Microsoft? Visual InterDev? 和所有虛擬的 Web 設(shè)計(jì)器及瀏覽器。識(shí)別文件擴(kuò)展名有 .htm 和 .html。
普通文本。該格式由只包含腳本而無(wú)兩端標(biāo)記的文本文件組成。使用該腳本格式編寫(xiě)的應(yīng)用程序包括 Windows? Scripting Host (WSH) 和 Microsoft? Outlook?。 識(shí)別文件擴(kuò)展名有 .js 和 .vbs,經(jīng)編碼后,分別變?yōu)?.jse 和 .vbe。
腳本小程序。該格式由一個(gè)在 <SCRIPT> ... </SCRIPT> 標(biāo)記中包含有效腳本小程序的文本文件組成。識(shí)別文件擴(kuò)展名有 .sct 和 .wsh。
示例如下是使用腳本編碼器的一個(gè)例子以及對(duì)其結(jié)果的簡(jiǎn)單解釋?zhuān)?br />對(duì)輸入文件 test.html 進(jìn)行編碼,生成輸出文件 encode.html,使用:
screnc test.html encode.html
對(duì)輸入文件 test.htm 進(jìn)行編碼,并用編碼后的輸出文件覆蓋輸入文件,使用:
screnc /f test.htm
對(duì)當(dāng)前目錄中的所有 .ASP 文件進(jìn)行編碼,并把編碼后的輸出文件放在c:\temp中,使用:
screnc *.asp c:\temp
對(duì)當(dāng)前目錄中的所有 .ASP 文件進(jìn)行編碼,并把編碼后的輸出文件放在c:\temp中,使用:
screnc /e asp *.* c:\temp
對(duì)輸入文件 test.htm 進(jìn)行編碼,并生成輸出文件 encode.htm,確保沒(méi)有指定語(yǔ)言屬性的腳本塊使用 VBScript,使用:
screnc /l vbscript test.htm encode.htm
對(duì)當(dāng)前目錄中的所有腳本小程序文件進(jìn)行編碼,并不經(jīng)信息顯示就用編碼后的文件覆蓋這些文件,使用:
screnc /s /f *.sct
-----------如下是一個(gè)包含需要保護(hù)的 JScript 代碼的簡(jiǎn)短示例:
<HTML>
<HEAD>
<TITLE>腳本編碼器示例頁(yè)</TITLE>
<SCRIPT LANGUAGE="JScript">
<!--//
//Copyright? 1998 Microsoft Corporation. All Rights Reserved.
//**開(kāi)始編碼**
function verifyCorrectBrowser(){
if(navigator.appName == "Microsoft Internet Explorer")
if (navigator.appVersion.indexOf ("5.") >= 0)
return(true);
else
return(false);
}
function getAppropriatePage(){
var str1 = "Had this been an actual Web site, a page compatible with ";
var str2 = "browsers other than ";
var str3 = "Microsoft Internet Explorer 5.0 ";
var str4 = "would have been loaded.";
if (verifyCorrectBrowser())
document.write(str1 + str3 + str4);
else
document.write(str1 + str2 + str3 + str4);
}'來(lái)自www.w3sky.com
//-->
</SCRIPT>
</HEAD>
<BODY onload="getAppropriatePage()">
</BODY>
</HTML>