程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> ASP原碼加密工具介紹

ASP原碼加密工具介紹

編輯:ASP技巧

總是會有很多方法暴露ASP的原程序,造成數據庫的密碼 路徑都可以輕易被其他人搞到,所以對ASP程序實行加密處理是個不錯的解決方法。下面來介紹一個工具如果大家感興趣可以來我主頁下載。
minisql.yeah.Net 熏衣草樂園
腳本編碼器是一種簡單的命令行工具,它使腳本設計者可以對最終的腳本進行編碼,從而使 Web 主機和 Web 客戶不能查看或修改它們的源代碼。注意,這種編碼只能防止別人在無意中查看到您的代碼,並不能防止蓄意黑客查看您的編碼內容及其方法。
Web 設計者在 Web 頁和服務器的 Active Sever Pages (.ASP)上編寫腳本,足以在網頁上添加您能想象到的所有功能。此外,Windows? Scripting Host(WSH) 和許多其他的應用程序也進行腳本編寫,並取得了同樣好的效果。

到目前為止,使用腳本的一個缺點是它既不能保護腳本內的知識產權,又不能保證用戶所看到的就是您所創造的成果。聰明的運算法則和精心設計的腳本總是能完全被看見,因為它們是作為普通文字儲存的 。因此,每一級的腳本用戶都能看到腳本設計者的原始編碼,並能取出、修改它們,從而據為己有。顯然,如果您正想在某一競爭激烈的領域占上風,這對您是非常不利的。

隨著腳本小程序的引進,保護源代碼變得更加重要。腳本設計者都希望使用這一簡單的部件層次結構,但卻並不一定想與他人共享自己的源代碼。只要腳本經編碼後,改變結果文件的任一部分都會使得腳本 無法執行,這樣,就保證了您編碼腳本的絕對完整。

腳本編碼器只對腳本代碼進行編碼,文件的其他內容不動且以普通文本形式顯示。要使用腳本編碼器,以通常方法對文本進行開發和調試,然後使用該實用程序對最終的腳本進行編碼。 腳本編碼器在源代碼中使用標記來標識編碼開始的位置。
對於 Visual Basic? Scripting Edition (VBScript),如下示例顯示了如何使用編碼標記來顯示普通文本的版權信息:


<SCRIPT LANGUAGE="VBScript">
'Copyright? 1998. XYZ PRoductions. All rights reserved.
'**開始編碼**
' 這裡放您的代碼.
</SCRIPT>

在 JScript? 中,編碼標記如下:

<SCRIPT LANGUAGE="JScript">
//Copyright? 1998. ZYX Productions. All rights reserved.
//**開始編碼**
// 這裡放您的代碼.
</SCRIPT>

當腳本編碼器被調用時,在開始標記前,腳本塊內的內容保持不變,而其他內容被編碼。因此,如果開始標記被省略,則腳本編碼塊內的所有內容均被編碼,但如果開始標記在腳本編碼塊的最後,則不對任 何內容進行編碼。
在編碼發生後。您應該知道 <SCRIPT> 標記中的語言指示符已改變。對於 VBScript,新的指示符如下:

<SCRIPT LANGUAGE="VBScript.Encode">

對於 JScript (或 JavaScript),新的指示符如下:
<SCRIPT LANGUAGE="JScript.Encode">

腳本編碼器在如下所示的 MS-DOS 命令行或“運行”對話框中被調用:
SRCENC [switches] inputfile outputfile

描述
對腳本編寫源代碼進行編碼,使其不會輕易地被用戶查看或修改。

語法
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 必需的。要生成的輸出文件的名稱,包括相對於當前目錄的任何需要的路徑信息。


說明
如下是腳本編寫器能處理的四種文件:
ASP。該格式由一個文本動態網頁組成,此網頁在 <SCRIPT> ... </SCRIPT> 標記或 <% ... %> 標記內包含有效的 Html 和內嵌腳本塊。使用該格式的應用程序包括 Microsoft? Internet Information Services (IIS)。識別文件擴展名有 .ASP、.asa 和 .cdx。
HTML。該格式由一個包含有效的 HTML 和內嵌腳本塊的文本文件組成。使用該腳本格式編寫的應用程序包括 Microsoft FrontPage?, Microsoft? Visual InterDev? 和所有虛擬的 Web 設計器及浏覽器。識別文件擴展名有 .htm 和 .Html。
普通文本。該格式由只包含腳本而無兩端標記的文本文件組成。使用該腳本格式編寫的應用程序包括 Windows? Scripting Host (WSH) 和 Microsoft? Outlook?。 識別文件擴展名有 .js 和 .vbs,經編碼後,分別變為 .JSe 和 .vbe。
腳本小程序。該格式由一個在 <SCRIPT> ... </SCRIPT> 標記中包含有效腳本小程序的文本文件組成。識別文件擴展名有 .sct 和 .wsh。
示例
如下是使用腳本編碼器的一個例子以及對其結果的簡單解釋:
對輸入文件 test.html 進行編碼,生成輸出文件 encode.Html,使用:

screnc test.html encode.Html

對輸入文件 test.htm 進行編碼,並用編碼後的輸出文件覆蓋輸入文件,使用:
screnc /f test.htm

對當前目錄中的所有 .ASP 文件進行編碼,並把編碼後的輸出文件放在c:\temp中,使用:
screnc *.ASP c:\temp

對當前目錄中的所有 .ASP 文件進行編碼,並把編碼後的輸出文件放在c:\temp中,使用:
screnc /e ASP *.* c:\temp

對輸入文件 test.htm 進行編碼,並生成輸出文件 encode.htm,確保沒有指定語言屬性的腳本塊使用 VBScript,使用:
screnc /l vbscript test.htm encode.htm

對當前目錄中的所有腳本小程序文件進行編碼,並不經信息顯示就用編碼後的文件覆蓋這些文件,使用:
screnc /s /f *.sct


----------------------------------------------------------------------如下是一個包含需要保護的 JScript 代碼的簡短示例:
<Html>
<HEAD>
<TITLE>腳本編碼器示例頁</TITLE>
<SCRIPT LANGUAGE="JScript">
<!--//
//Copyright? 1998 Microsoft Corporation. All Rights Reserved.
//**開始編碼**
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);
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="getAppropriatePage()">
</BODY>
</Html>

該頁在經腳本編碼器運行後如下所示:
<Html>
<HEAD>
<TITLE>腳本編碼器示例頁</TITLE>
<SCRIPT LANGUAGE="JScript.Encode">
<!--//
//Copyright? 1998 Microsoft Corporation. All Rights Reserved.
//**開始編碼**#@~^QwIAAA==@#@&0; mDkW P7nDb0zZKD.n1YAMGhk+Dvb`@#@&P,kW`UC7kLlDGDcl22gl:n~{'~Jtr1DGkW6YP&xDnD +OPA62sKD+ME#@#@&P,~~k6PvxC\rLmYGDcCwa.n.kkWU bx[+X66Pcr*cJ#,@*{~!*P~P,P~.YEMU`DDEbIP,P,+s/n@#@&P~P,~PM+O;Mx`WC^/n#pN6EU1YbWx,oObaw.WaDrCD+nmL+v# @#@&~P7lMPdY.q,'~J_CN,Y4rkP4nn PCx,C1Y;mV,+(PkrY~~l,wCLPmKhwmYk(snPSkDt~JI@#@&P~\m.PkY.+,'PE8MWA/.kPGDtDPDtmUPri@#@&,P-CMP/D.&,'Pr\rmMWkWWY~( YnD nY,2a2^WDn.,* !,Ep@#@&,P7lD,/D.c,'~JSW;s9Ptm-+,4+U~VKl9+[REI,Pr0,c\DrWHZW..mOAMGS/nM`*#@#@&P,~P9W^Es+UOchDbO+v/YMq~_,/DDfPQ~kY.c*IP,+sd@#@&~~,P[W1;s+UDRSDkD+vdYMF~_,/O.yP_,dYM&P3~dYMc*iNz&R @*^#~@
//-->
</SCRIPT>
</HEAD>
<BODY onload="getAppropriatePage()">
</BODY>
</Html>


----------------------------------------------------------------------

要點 :經過編碼後,如果您改動編碼後的文本,哪怕只改動一個字。腳本的完整性就會丟失,從而不能再使用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved