asp中文加密
『壹』 用ASP分別編寫一個實現加密和解密功能的頁面
是不是MD5加密?如果是MD5加密,加密後是不可能解密的。而用ASP加密的話,一旦別人知道了演算法的話,基本上就沒有加密型可言了
下面是ASP加密
Function.asp
<%
Rem =================================================================
Rem = 函數文件:Function.asp
Rem = 測試文件:TestEncrypt.asp,Encryptpass.asp
Rem = 說明:Encrypt_PRO加密函數,Decrypt_PRO解密函數
Rem = 代碼演算法需要重寫,可能知道的人多了就不太安全了。
=================================================================
Public Const sDefaultWHEEL1 = "ABCDEFGHIJKLMNOPQRSTVUWXYZ_1234567890qwertyuiopasd!@#$%^&*(),. ~`-=\?/』""fghjklzxcvbnm<>;"
Public Const sDefaultWHEEL2 = "IWEHJKTLZVOPFG_ ~`-=\?/』""!@#$%^&*(),.vbnm<>;tyuiopasd"
Function Encrypt_PRO(sINPUT , sPASSWORD )
Dim sWHEEL1, sWHEEL2
Dim k, c, i
Dim sRESULT
sWHEEL1 = sDefaultWHEEL1: sWHEEL2 = sDefaultWHEEL2
ScrambleWheels sWHEEL1, sWHEEL2, sPASSWORD
sRESULT = ""
For i = 1 To Len(sINPUT)
c = Mid(sINPUT, i, 1)
k = InStr(1, sWHEEL1, c)
If k > 0 Then
sRESULT = sRESULT & Mid(sWHEEL2, k, 1)
Else
sRESULT = sRESULT & Addpass(c,sPASSWORD)
End If
sWHEEL1 = LeftShift(sWHEEL1): sWHEEL2 = RightShift(sWHEEL2)
Next
Encrypt_PRO = sRESULT
End Function
Function Decrypt_PRO(sINPUT , sPASSWORD )
Dim sWHEEL1, sWHEEL2
Dim k, i, c
Dim sRESULT
sWHEEL1 = sDefaultWHEEL1: sWHEEL2 = sDefaultWHEEL2
ScrambleWheels sWHEEL1, sWHEEL2, sPASSWORD
sRESULT = ""
For i = 1 To Len(sINPUT)
c = Mid(sINPUT, i, 1)
k = InStr(1, sWHEEL2, c, vbBinaryCompare)
If k > 0 Then
sRESULT = sRESULT & Mid(sWHEEL1, k, 1)
Else
sRESULT = sRESULT & Addpass(c,sPASSWORD)
End If
sWHEEL1 = LeftShift(sWHEEL1): sWHEEL2 = RightShift(sWHEEL2)
Next
Decrypt_PRO = sRESULT
End Function
Function LeftShift(s )
If Len(s) > 0 Then LeftShift = Mid(s, 2, Len(s) - 1) & Mid(s, 1, 1)
End Function
Function RightShift(s )
If Len(s) > 0 Then RightShift = Mid(s, Len(s), 1) & Mid(s, 1, Len(s) - 1)
End Function
Sub ScrambleWheels(ByRef sW1 , ByRef sW2 , sPASSWORD )
Dim i ,k
For i = 1 To Len(sPASSWORD)
For k = 1 To Asc(Mid(sPASSWORD, i, 1)) * i
sW1 = LeftShift(sW1): sW2 = RightShift(sW2)
Next
Next
End Sub
Function Addpass(tStr,tPass)
Select Case tStr
Case Chr(13)
Addpass = tStr
Case Chr(10)
Addpass = tStr
Case Chr(13)+Chr(10)
Addpass = tStr
Case Chr(9)
Addpass = tStr
Case Else
Addpass = Chr((Asc(tPass) Xor Len(tPass)) Xor Asc(tStr))
End Select
End Function
Function ReadFile(FileName)
Dim fso, f
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(Server.MapPath(FileName), ForReading, True)
ReadFile = f.ReadAll
f.Close
End Function
Sub WriteFile(FileName,Str)
Dim fso, f
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(Server.MapPath(FileName), ForWriting, True)
f.Write Str
f.Close
End Sub
%>
--------------------------加密代碼的使用方法-----------------------
從文件index_buk.Htm中讀加密後寫到index.htm文件中然後解密並顯示
也是所謂的Asp代碼與HTML代碼分離。
Index_buk.htm代碼為:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test</title>
<link href="css/css.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style1 {
color: #990000;
font-weight: bold;
}
-->
</style>
<body>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<table width="500" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="cccccc">
<tr align="center" bgcolor="#efefef">
<td colspan="2"><span class="style1">系統發生錯誤!</span></td>
</tr>
<tr bgcolor="ffffff">
<td colspan="2">{$MsgCon$}</td>
</tr>
<tr bgcolor="ffffff">
<td colspan="2" align="center"><< <a href="javascript:history.go(-1);">返回重新操作</a> >></td>
</tr>
</table>
<p align="center"> </p>
</body>
</html>
——————————————ASP代碼調用----------------------
<!--#include file="Function.asp" -->
<%
Rem =================================================================
Rem = 函數文件:Function.asp
Rem = 測試文件:TestEncrypt.asp,Encryptpass.asp
Rem = 說明:Encrypt_PRO加密函數,Decrypt_PRO解密函數
Rem = 代碼演算法需要重寫,可能知道的人多了就不太安全了。
Rem =================================================================
Str = ReadFile("index_buk.Htm")
Pass = "cexo"
Encrypt_Str = Encrypt_PRO(Str,Pass)
Decrypt_Str = Decrypt_PRO(Encrypt_Str,Pass)
Response.Write Encrypt_Str
WriteFile "Index.htm",Encrypt_Str
Response.Write Decrypt_Str
Str2 = ReadFile("index.Htm")
Decrypt_Str = Decrypt_PRO(Str2,Pass)
Str3 = "<li>1111111111111111111111111111</li><br>
<li>1111111111111111111111111111</li><br>
<li>22222222222222222222222222222</li><br>
<li>33333333333333333333333333</li><br>"
Msg = Replace(Decrypt_Str,"{$MsgCon$}",Str3)
Response.Write Msg
%>
--------------------------加密數據的使用方法-----------------------
<%
Rem =================================================================
Rem = 函數文件:Function.asp
Rem = 測試文件:TestEncrypt.asp,Encryptpass.asp
Rem = 說明:Encrypt_PRO加密函數,Decrypt_PRO解密函數
Rem = 適用:對數據的加密,或對代碼的加密,可加密中文/英文等。
Rem =================================================================
%>
<!--#include file="Function.asp" -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>加密解密實例</title>
</head>
<body>
<%
Pass = Request("txtpass")
If Pass = Null Then Pass = ""
%>
<form name="form1" method="post" action="TestEncrypt.asp">
請輸入要加密的文本:<br>
<textarea name="txt1" cols="80" rows="10"><%=server.HTMLEncode(Decrypt_PRO(Request("txt2"),Pass))%></textarea>
<br>
求得解密文本為: 密碼為:
<input name="txtpass" type="text" id="txtpass" value="<%=Pass%>">
<br>
<textarea name="txt2" cols="80" rows="10"><%=Encrypt_PRO(Request("txt1"),Pass)%></textarea>
<br><input type="submit" name="Submit" value="加密">
<input type="submit" name="Submit2" value="解密">
</form>
</body>
</html>
『貳』 asp怎麼加密解密中文和數字
這個其實很簡單,就看你要求加密的安全機制高與不高。
如果高,你可以網路一下md5加密方法。
如果要求不是很高,你自己可以寫一個演算法。
例如:你要對 a 進行加密,現在我舉一個a為數字的例子
那麼你只需要這樣做。
dim a,b
b=a+1-2*3/4
其中的運算符號可以自己寫,當中的數字,也可以自己擬定。
得出來的b 就是a加密後的結果。再把b存起來。
解密,你只需要反推回去就行。
不過,這樣的加密只適用於簡單。場合,很容易被破解
所以建議還是用md5加密。
去下載一個md5加密演算法的源代碼,然後用include調用他你下載的源代碼頁面。
b=md5(a)
一般情況下,直接按以上寫法即可。
『叄』 在asp和.net中中文經過md5加密的值如何處理讓兩個加密後值相同
在asp和asp.net中md5 Hash英文結果相同,但hash中文時會出現結果不同的情況。
這是由於asp默認加密是按GB2312,而asp.net默認是按UTF-8,這樣兩者的結果就不同了。
在asp.net中可以很方便的修改代碼採用GB2312計算MD5,在asp中可以採用修改asp文件編碼的方式來實現utf-8 md5。轉換asp文件編碼方式工具很多,ultraedit或convertZ都可以方便轉換。
『肆』 滿分速求:ASP,PHP文件加密
從微軟免費下載到sce10chs.exe 直接運行即可完成安裝過程。安裝完畢後,將生成screnc.exe文件,這是一個運行在 DOS PROMAPT的命令工具。運行screnc - l vbscript source.asp destination.asp 生成包含密文 ASP腳本的新文件destination.asp。用記事本打開看凡是""之內的,不管是否註解,都變成不可閱讀的密文了,但無法加密中文。
『伍』 asp加密的加密方式
它的基本原理是,需要有一個需要加密的明文和一個隨機生成的解密鑰匙文件。然後使用這兩個文件組合起來生成密文。
我們首先從密鑰文件中得到密鑰值,然後從這段密鑰中截取和我們需要加密的明文同樣長度的密鑰。然後使用一個簡單的異或操作將明文和密鑰進行運算,那麼得到的結果就是加密後的密文了。過程很簡單的。由於是使用了異或操作,所以解密將非常簡單,只要使用同樣的密鑰對密文再次進行異或操作就能夠解密了。在上面介紹的基礎上,你可以少加改動,就可以使用同樣的方法加密一個文件。唯一需要注意的是,對於一個二進制文件,你需要做一些完整性檢查以保證轉換回來的字元不要越界。現在你需要做的就是把密鑰保存在伺服器上的一個安全的地方。
Vernam密碼是由Gilbert Vernam (他是AT&T的工程師)在1918年發明的。這是一種使用異或方法進行加密解密的方法。 主要功能
徹底加密源代碼,可達到徹底保護知識產權的目的,加密效果優於非編譯型的腳本加密工具。非編譯型的加密工具要在運行時在內存中還原腳本執行,編譯型代碼不可還原,直接二進制的執行方式。
產品特點
1.支持各種ASP伺服器腳本默認語言。
2.能夠完全正確識別後綴名為ASP的偽ASP文件。
3.不論多麼復雜的語法結構,都能正確加密並解析。
4.完美處理多種特殊ASP語法在DLL中異常情況...
系統要求
WindowsNT4.0 + IIS
WindowsXP + IIS
Windows 7 + IIS
Windows2000 + IIS
Windows2003 + IIS
Windows2008 + IIS Script Encoder的特點是:
它只加密頁面中嵌入的腳本代碼,其他部分,如HTML的TAG仍然保持原樣不變。處理後的文件中被加密過的部分為只讀內容,對加密部分的任何修改都將導致整個加密後的文件不能使用。Script Encoder加密過的ASP文件還將使Script Debugger之類的腳本調試工具失效。
Script Encoder是可以對Client Side Script加密,也可以對Server Side Script加密。
二、使用簡介
Script Encoder是個命令行工具,執行文件為SCRENC.EXE。它的操作非常簡單:
SCRENC [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile outputfile
/s 可選。讓Script Encoder「安靜」的工作,即執行過程沒有屏幕輸出。
/f 可選。指定輸出文件是否覆蓋同名輸入文件。忽略,將不執行覆蓋。
/e defExtension 可選。指定待加密文件的文件擴展名。 ASP加密解密軟體(Asp EnCoder):國人自己編寫的軟體,持MicroSoft Script Encoder加密解密,移位、逆位加密解密演算法,可保護我們辛辛苦苦編寫的ASP代碼,也可以躲避殺毒軟體的查殺。
AspToDll風火輪:能夠將ASP代碼封裝成DLL,利用DLL無法還原的特性確保ASP代碼加密之後不可解,保護ASP開發者的知識產權不受侵害。
ASP加密鎖(AspApp):將IIS + ASP(Active Server Page)實現的網站進行打包、加密、壓縮,打包後的應用仍然可以在IIS下使用,但是他人已經無法直接閱讀ASP腳本內容,徹底保護您的辛苦勞動成果和知識產權,您可以用來製作WEB系統的試用版本、功能限製版本和發行版本等。
『陸』 ASP簡單文字加密
<%
Function AscDecrypt(AscDecode)
For iDe=1 To Len(AscDecode)
DeTexts = DeTexts & Asc(Mid(AscDecode,iDe,2)) & "a"
Next
DeTexts = Replace(DeTexts,"-","u")
AscDecrypt = Left(DeTexts,Len(DeTexts)-1)
End Function
Function AscEncrypt(AscEncode)
AscEncode = Replace(AscEncode,"u","-")
EncodeArr = Split(AscEncode,"a")
For iEn=0 To UBound(EncodeArr)
ChrAscNum = EncodeArr(iEn)
If IsNumeric(ChrAscNum) Then
EnTexts = EnTexts & Chr(ChrAscNum)
End If
Next
AscEncrypt = EnTexts
End Function
%>
<%=AscDecrypt("測試")%>
<%=AscEncrypt("u20236au18732au20271au23617")%>
原理:ASP下的Asc函數讀取字元的Ascii值
『柒』 asp程序加密了 怎麼解決
用組件法加密的asp程序是無法解密的,而screnc加密過的程序則可以解密,方法是:使用解密軟體(ZWDECODE.EXE)。
ZWDECODE.EXE(下載地址
http://www.mydown.com/softdown/45/45183.html
)可以對MS
Script
Encode加密的ASP文件進行解密,還原出源代碼。
(1)解密方法
單擊「開始」/程序/附件/命令提示符,在MS-DOS
命令行中輸入以下命令,即可恢復原代碼:
ZWDECODE
<已加密asp文件名>
其中<已加密asp文件名>必需輸入,該文件名可帶目錄路徑;也必需輸入,這是要生成的輸出文件名,也可以帶路徑信息。
(2)舉例
例如F:\22\lacl.asp曾被screnc加密處理過,現在要恢復其中的源代碼,你可以在MS-DOS中輸入以下命令:
ZWDECODE
F:\22\lacl.asp
d:\ulacl.asp
執行完畢,在D盤上就會生成一個ulacl.asp文件,打開該文件,你就能看到源代碼了!
『捌』 asp文件如何加密
可以使用vb,把核心的代碼部分做成動態連接庫,然後注冊到伺服器端運行.這個是比較好的方法
『玖』 asp如何加密網頁
你說的"加密"指用戶要輸入用戶名和密碼才能進入該頁?
----------------------
假設Access資料庫 MyDatabase.mdb,password.asp 和 Test.asp 都在同一文件夾
password.asp代碼:
<%
userName = Request.form("username")
password = Request.form("password")
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
cn.Open "provider=microsoft.jet.oledb.4.0; data source=" & server.MapPath("MyDatabase.mdb")
strSQL="Select * From Members Where [UserName]='" & userName & "' And [Password]='" & passWord & "'"
rs.Open strSQL, cn
if rs.EOF then
%>
<form method="post">
<input name="username">
<input type="password" name="password">
<input type="submit">
</form>
<%
else
response.write "Welcome!"
end if
rs.Close
cn.Close
Set cn = Nothing
Set rs = Nothing
%>
Test.asp 代碼:
<%
response.write "In Test.asp"
%>
<!--#include file = "password.asp"-->
『拾』 求asp 中文加密、解密的函數
base64
<%
'OPTION EXPLICIT
const BASE_64_MAP_INIT = "+/"
dim nl
' zero based arrays
dim Base64EncMap(63)
dim Base64DecMap(127)
' must be called before using anything else
PUBLIC SUB initCodecs()
' init vars
nl = "<P>" & chr(13) & chr(10)
' setup base 64
dim max, idx
max = len(BASE_64_MAP_INIT)
for idx = 0 to max - 1
' one based string
Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1)
next
for idx = 0 to max - 1
Base64DecMap(ASC(Base64EncMap(idx))) = idx
next
END SUB
' encode base 64 encoded string
PUBLIC FUNCTION base64Encode(plain)
if len(plain) = 0 then
base64Encode = ""
exit function
end if
dim ret, ndx, by3, first, second, third
by3 = (len(plain) \ 3) * 3
ndx = 1
do while ndx <= by3
first = asc(mid(plain, ndx+0, 1))
second = asc(mid(plain, ndx+1, 1))
third = asc(mid(plain, ndx+2, 1))
ret = ret & Base64EncMap( (first \ 4) AND 63 )
ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
ret = ret & Base64EncMap( ((second * 4) AND 60) + ((third \ 64) AND 3 ) )
ret = ret & Base64EncMap( third AND 63)
ndx = ndx + 3
loop
' check for stragglers
if by3 < len(plain) then
first = asc(mid(plain, ndx+0, 1))
ret = ret & Base64EncMap( (first \ 4) AND 63 )
if (len(plain) MOD 3 ) = 2 then
second = asc(mid(plain, ndx+1, 1))
ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
ret = ret & Base64EncMap( ((second * 4) AND 60) )
else
ret = ret & Base64EncMap( (first * 16) AND 48)
ret = ret & "="
end if
ret = ret & "="
end if
base64Encode = ret
END FUNCTION
' decode base 64 encoded string
PUBLIC FUNCTION base64Decode(scrambled)
if len(scrambled) = 0 then
base64Decode = ""
exit function
end if
' ignore padding
dim realLen
realLen = len(scrambled)
do while mid(scrambled, realLen, 1) = "="
realLen = realLen - 1
loop
dim ret, ndx, by4, first, second, third, fourth
ret = ""
by4 = (realLen \ 4) * 4
ndx = 1
do while ndx <= by4
first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
third = Base64DecMap(asc(mid(scrambled, ndx+2, 1)))
fourth = Base64DecMap(asc(mid(scrambled, ndx+3, 1)))
ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3))
ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15) )
ret = ret & chr( ((third * 64) AND 255) + (fourth AND 63) )
ndx = ndx + 4
loop
' check for stragglers, will be 2 or 3 characters
if ndx < realLen then
first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3))
if realLen MOD 4 = 3 then
third = Base64DecMap(asc(mid(scrambled,ndx+2,1)))
ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15) )
end if
end if
base64Decode = ret
END FUNCTION
' initialize
call initCodecs
' Testing code
' dim inp, encode
' inp = request.QueryString("input")
' encode = base64Encode(inp)
' response.write "Encoded value = " & encode & nl
' response.write "Decoded value = " & base64Decode(encode) & nl
%>
BASE_64_MAP_INIT 是密鑰~
最後幾行是例子..
多個地方用最好寫成ASP文件INCLUDE..