當前位置:首頁 » 密碼管理 » asp參數加密

asp參數加密

發布時間: 2024-09-28 01:44:32

① asp加密概述

加密,是通過特定演算法將原始數據轉變為無法直接理解的形式,以確保未經授權的用戶即使獲取到加密信息,由於缺乏解密鑰匙,也無法獲取信息內容。其安全性並非源於加密演算法的隱秘性,而是關鍵在於密鑰的絕對保密。RSA和AES等常見的公開加密演算法,盡管演算法本身廣為人知,但只要沒有密鑰,加密信息依舊堅不可摧。單純隱藏加密演算法並不能提供足夠的保護,因為它們已面臨長期的黑客攻擊和業界測試,相比之下,使用密鑰保護的加密技術更為安全。


在密碼學領域,加密是將明文信息轉化為不可讀的形式,僅在擁有特定信息的情況下才能解讀。盡管加密作為保密手段歷史悠久,但直到20世紀70年代,強加密才開始在公共領域廣泛應用,如今已成為保護互聯網電子商務、手機網路、銀行系統等重要系統的標准手段,確保數據安全。


除了加密,數據完整性和信息驗證也是通信安全的重要組成部分,例如信息驗證碼(MAC)和數字簽名。同時,為了防止流量分析,其他技術手段也是必要的。在軟體版權保護中,加密和軟體編碼隱匿(Code Obfuscation)也被用於對抗反向工程和軟體盜版,以及數字版權管理(DRM)等。


古代的加密手段各異,如中國使用澱粉水寫字再用碘水顯影,而國外如伯羅奔尼撒戰爭中的腰帶密碼,是通過預先約定的解讀規則,將情報編碼在看似隨機的字母中,只有接收者按照同樣方式解開才能解讀。這種密碼通信方式,是現代密碼電報的早期靈感來源。斯巴達軍隊通過解讀這種密碼,扭轉了戰局,展示了密碼在情報傳遞中的重要作用。


(1)asp參數加密擴展閱讀

為了保護asp源碼,對asp源碼進行處理使他人無法查看和修改asp源碼就需要進行asp加密。

② ASP.NET中幾種加密方法

MD 的全稱是Message Digest Algorithm (信息 摘要演算法) 在 年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l rivest開發出來 經md md 和md 發展而來 它的作用是讓大容量信息在用數字簽名軟體簽署私人密匙前被"壓縮"成一種保密的格式(就是把一 個任意長度的位元組串變換成一定長的大整數) 不管是md md 還是md 它們都需要獲得一個隨機長度的信息並產生一個 位的信息摘要

加密哈希函數將任意長度的二進制字元串映射為固定長度的小型二進制字元串 加密哈希函數有這樣一個屬性 在計算上不大可能找到散列為相同的值的兩個 不同的輸入 也就是說 兩組數據的哈希值僅在對應的數據也匹配時才會匹配 數據的少量更改會在哈希值中產生不可預知的大量更改 所以你很難從加密後的文字 中找到蛛絲馬跡

SHA 的全稱是Secure Hash Algorithm(安全哈希演算法)

MD 演算法的哈希值大小為 位 而SHA 演算法的哈希值大小為 位 兩種演算法都是不可逆

雖說 年 月 日的美國加州聖巴巴拉的國際密碼學會議(Crypto』 )上 來自中國山東大學的王小雲教授做了破譯MD HAVAL MD 和RIPEMD演算法的報告 公布了MD系列演算法的破解結果 宣告了固若金湯的世界通行密碼標准MD5的堡壘轟然倒塌 引發了密碼學界的軒然 *** 但 是我覺得對於我們做普通的軟體來說 這個加密安全程度已經足夠使用了

我們平常用的最多的無非就是加密用戶密碼 把加密好的密碼存儲資料庫中 進行密碼比較的時候 把用戶輸入的密碼再進行加密 然後與資料庫中的密文 進行比較 至於ASP net類中是如何實現加密演算法的 這個我們不需要關心 會用就行了

下面就是ASP NET中幾種加密方法 加密演算法有兩種 也就是上面提到的MD 和SHA 這里我舉的例子是以MD 為例 SHA 大致相同 只 是使用的類不一樣

MD 相關類

System Security Cryptography MD System Security Cryptography MD CryptoServiceProvider() System Web Security FormsAuthentication (strSource "MD ")

SHA 相關類

System Security Cryptography SHA System Security Cryptography SHA CryptoServiceProvider() System Web Security FormsAuthentication (strSource "SHA ")

方法如下 (用的vs )

/**//// <summary> /// 方法一:通過使用 new 運算符創建對象 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密結果 該結果取 位加密結果的第 位到 位</returns> public string Get_MD _Method (string strSource) { //new System Security Cryptography MD md = new System Security Cryptography MD CryptoServiceProvider(); //獲取密文位元組數組 byte[] bytResult = md ComputeHash(System Text Encoding Default GetBytes(strSource)); //轉換成字元串 並取 到 位 string strResult = BitConverter ToString(bytResult ); //轉換成字元串 位 //string strResult = BitConverter ToString(bytResult); //BitConverter轉換出來的字元串會在每個字元中間產生一個分隔符 需要去除掉 strResult = strResult Replace(" " ""); return strResult; } /**//// <summary> /// 方法二:通過調用特定加密演算法的抽象類上的 Create 方法 創建實現特定加密演算法的對象 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密結果</returns> public string Get_MD _Method (string strSource) { string strResult = ""; //Create System Security Cryptography MD md = System Security Cryptography MD Create(); //注意編碼UTF UTF Unicode等的選擇 byte[] bytResult = md ComputeHash(System Text Encoding UTF GetBytes(strSource)); //位元組類型的數組轉換為字元串 for (int i = ; i < bytResult Length; i++) { // 進制轉換 strResult = strResult + bytResult[i] ToString("X"); } return strResult; } /**//// <summary> /// 方法三:直接使用生成 /// </summary> /// <param name=strSource>需要加密的明文</param> /// <returns>返回 位加密結果</returns> public string Get_MD _Method (string strSource) { return System Web Security FormsAuthentication (strSource "MD "); } lishixin/Article/program/net/201311/14023

③ 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.net中config的connectionstrings加密怎麼做

加密網站中的配置信息,我們不需要寫任何代碼,也不需要修改任何代碼,只需要使用 aspnet_regiis 工具修改配置文件即可.
比如我們有下面一個配置文件需要加密:
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;
Integrated Security=SSPI;Initial Catalog=Northwind;" />
</connectionStrings>
</configuration>

假設這個配置文件在 MyApplication 目錄下。
加密命令
aspnet_regiis -pe "connectionStrings" -app "/MyApplication"

aspnet_regiis 命令在你安裝的 .net Framework 目錄下, 默認在:
C:\WINDOWS\Microsoft.Net\Framework\v2.0.*

加密後的效果:
<configuration>
<connectionStrings configProtectionProvider="">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData> <CipherValue>0RU0XfRexc6aLFYZM+f+IWZVINqTZAAunysoVPv0dliPM72D
34MJ/gX7pzvhSJNqCLiXeyjsayse
12oAuF4rlIEraa//0QB
=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData> <CipherValue>
KmD2h7hJo2BeTIjyIOAq/2J1saLDJm
+d
zA8qEF//
ZJrjYcHIk3I27oh/XuxtSQ0VNOl
gfSsM/=
</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
</configuration>

注意:為了避免一行太長,我這里把加密後信息加了幾個回車符。

ASP.NET 在處理 Web.config 文件時會自動對該文件的內容進行解密。因此,
不需要任何附加步驟即可對已加密的配置設置進行解密,供其他 ASP.NET 功能使用或用於訪問代碼中的值。

如果你想修改這些配置信息,就需要解密這個文件,然後再加密。解密用 aspnet_regiis.exe 命令的 -pd 選項。
參考命令如下:

aspnet_regiis -pd "connectionStrings" -app "/MyApplication"

上面給的範例是 針對 IIS 的站點,如果你的站點是使用VS2005 的 ASP.net Development Server
則需要用 -pef 參數,當然 iis 站點也可以這么用

aspnet_regiis.exe -pef "connectionStrings" "D:\My2005Codes\WebTestCode\TestWEBSite"

說明:
-pef 對指定物理(非虛擬)目錄中的 Web.config 文件的指定配置節進行加密。
對應的這個解密則是
-pdf 參數 對指定物理(非虛擬)目錄中的 Web.config 文件的指定配置節進行解密。

應該是可以用的啊,你看開始菜單裡面的vs2008下面有一個vs2008工具的目錄,在他下面有一個vs2008命令行,用這個就可以。加密後可以直接讀取程序運行時自動解密的,放心。不影響不需要運行時寫另外代碼解密

⑤ 用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>

熱點內容
訪問國外報告 發布:2024-11-24 09:55:09 瀏覽:739
php判斷函數 發布:2024-11-24 09:55:09 瀏覽:511
我的世界如何打開進入伺服器 發布:2024-11-24 09:55:05 瀏覽:91
移動終端password的密碼是多少 發布:2024-11-24 09:54:21 瀏覽:851
熱度java 發布:2024-11-24 09:42:42 瀏覽:588
伺服器搭建代理教程 發布:2024-11-24 09:36:20 瀏覽:445
svn存儲伺服器 發布:2024-11-24 09:22:36 瀏覽:411
linux的硬碟格式 發布:2024-11-24 09:22:35 瀏覽:321
啟動ftp的命令是 發布:2024-11-24 09:12:33 瀏覽:602
腳本爬取數據 發布:2024-11-24 09:11:50 瀏覽:274