webconfig加密
Ⅰ 如何解密下面的字元串 它是什麼加密方式
解密為:
通過本工具可以快速檢測網頁的META標簽,分析標題、關鍵詞、描述等是否有利於搜索引擎收錄
Ⅱ 請教大師們,想在webconfig文件里把鏈接資料庫字元串加密,用md5就可以是吧
對呀,你先加密好了,然後用的時候按你自己的方式轉換就行了。用DES加密吧。
Ⅲ 如何為配置文件加密
在web.config或app.config文件里我們經常會存儲一些敏感信息,比如connectionStrings或者appSettings,比如像下面的文件。
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<connectionStrings>
<add name="MyNwConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword;"/>
</connectionStrings>
<appSettings>
<add key="User" value="myUsername"/>
<add key="Password" value="myPassword"/>
</appSettings>
</configuration>
using System;
using System.Configuration;
namespace WebConfigEncryptTest
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string user = ConfigurationManager.AppSettings.Get("User");
string password = ConfigurationManager.AppSettings.Get("Password");
string connectionString = ConfigurationManager.ConnectionStrings["MyNwConnectionString"].ConnectionString;
}
}
}
(一)加密文件可以使用的Provider
.NET為我們提供了一個工具aspnet_regiis.exe來對web.config文件中的敏感信息進行加密(app.config文件可以先改名為web.config,加密後再改回app.config)。你可以使用兩個provider中的一個來進行加密:
System.Configuration.:在System.Configuration.dll中,使用Windows DPAPI(Data Protection API)來進行加密,密鑰存在Windows Local Security Authority(LSA)中。注意:當使用時,加密文件所使用的帳號需要與運行web application的帳號相同,否則web application無法解密加密的內容。
System.Configuration.:在System.Configuration.dll中,使用RSA演算法來進行加密(RSA演算法是非對稱加密,參見《對稱加密與非對稱加密 》),公鑰存放在config文件當中,只有加密的計算機有密鑰。通常是默認的預設provider。
(二)加密文件的命令
加密web.config文件可以使用:
aspnet_regiis -pef section web-app-physical-dir
Encrypt the configuration section. Optional arguments:
[-prov provider] Use this provider to encrypt.
比如運行下面的命令就會分別對connectionStrings和appSettings中的信息進行加密:
aspnet_regiis.exe -pef "connectionStrings" "C:\myweb\HelloService"
aspnet_regiis.exe -pef "appSettings" "C:\myweb\HelloService"
加密後的web.config文件變成:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation targetFramework="4.0" />
</system.web>
<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>E2fO9C0TJVxImLYQZza+fCQdDbTpNh/kOKLRsK6zcFjkgtUCl6SnMViuu/2G1NVTxqXyEWYwyK6AiCZA+feeG/+f2EIimP7LJI+JRZVerI4MU6Ke3wxm2S/ATc73/W6eg9808f4//JB0kso0kGJ9i+==</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>I1DWG11Iz/rq+NC9C/21B3Q22J9+//JW1oCvAGs5tHrZU5+vgvm0yCmSuCWZbXva+iv9J35EQqs58pq+hwVo1hg1dffpGCBykaXGl5VX3TIGc=</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
<appSettings 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>//SuBvV3D2kxhHaYGFaPuvYgsyOLf3+aYR3O/uh/+/iSANzAWoC+==</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>5W2KhG/oETLUDptobcOM52x1qD/g9A0By/wcGXI+///w=</CipherValue>
</CipherData>
</EncryptedData>
</appSettings>
</configuration>
是默認的預設provider,如果想使用,可以用-prov參數指明:
aspnet_regiis.exe -pef "connectionStrings" "C:\myweb\HelloService" -prov ""
aspnet_regiis.exe -pef "appSettings" "C:\myweb\HelloService" -prov ""
加密配置文件後,源程序不需要做任何改動。如果要修改或添加新的配置信息,需要先解密配置文件。不論使用哪種Provider,都只能在進行加密的計算機上對配置文件進行解密。
Ⅳ 怎麼解密Web.config裡面的IP和密碼
web.config的加密一般是在某台電腦上面進行的,只有在那台電腦上面才可以解密.. 你可以搜下 web.config的加密與解密
Ⅳ asp.net的配置文件web.config怎麼解密
使用「」形式來加密
test.aspx程序文件基本如上,
把
section.SectionInformation.ProtectSection(「」);
改成
section.SectionInformation.ProtectSection(「」);
但這個時候你訪問網站的時候很有可能會出現
說明:
在處理向該請求提供服務所需的配置文件時出錯。請檢查下面的特定錯誤詳細信息並適當地修改配置文件。
分析器錯誤信息: 未能使用提供程序「」進行解密。
提供程序返回錯誤信息為: 打不開 RSA 密鑰容器。
這樣的錯誤,解決方法是:
進dos運行:aspnet_regiis -pa 「NetFrameworkConfigurationKey」
「NT AUTHORITY\NETWORK SERVICE」
如果運行出錯,需要把目錄 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
放入環境變數path中。此時就可以成功訪問網站了。
同樣可以通過命令行來實現「」加密
注意:你也可以不運行 aspnet_regiis -pa 「NetFrameworkConfigurationKey」
「NT AUTHORITY\NETWORK SERVICE」命令來注冊默認的
的RSA 密鑰容器
方法如下:
1)創建一個可導出的rsa密鑰容器,命名為Key
aspnet_regiis -pc 「Key」 -exp
2)在你要加密的信息前面指定密鑰容器,如:
<configProtectedData><providers><clear /><add name=」KeyProvider」 type=」System.Configuration., System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL」 keyContainerName=」Key」 useMachineContainer=」true」/></providers></configProtectedData><connectionStrings><add name=」SQLConnString」 connectionString=」Data Source=yourIP;Initial Catalog=test;User Id=yourID;Password=yourPassword;」providerName=」System.Data.SqlClient」 /></connectionStrings>
並且確保在configuration節的xmlns屬性有如下值:
3)對配置文件進行加密
aspnet_regiis -pef 「connectionStrings」 「E:\project\Test」 -prov 「KeyProvider」
參數分別為:需要加密的配置節、項目所在目錄的物理路徑、加密所使用的密鑰容器名稱
再看web.config文件,就會發現connectionStrings節已經被加密了,但
是運行程序會發現程序仍然可以正確訪問資料庫。
此時,只需運行:
aspnet_regiis -pdf 「connectionStrings」 「E:\project\Test」
就可以對web.config文件進行解密。
(注意,如果還是有錯誤,那可能是您沒有給生成的密匙文件足夠的許可權,
去到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
目錄下,找到剛生成的密匙文件,把network service用戶的讀取許可權賦予給它,就可以了,
直接用命令的話也可以:命令如下 aspnet_regiis -pa 「Key」 「NT AUTHORITY\NETWORK SERVICE」 ,
可能需要重新啟動iis
4)把密鑰容器導出為xml文件
aspnet_regiis -px 「Key」 「e:\Key.xml」
這個命令只導出公鑰,因此以後只能用於加密,而無法解密。
aspnet_regiis -px 「Key」 「e:\Keys.xml」 -pri
這個則連私鑰一起導出了,所以我們要用這個。
5)把密鑰容器刪除
aspnet_regiis -pz 「Key」
刪除後再運行程序,會提示出錯:
分析器錯誤信息: 未能使用提供程序「KeyProvider」進行解密。
提供程序返回錯誤信息為: 打不開 RSA 密鑰容器。
同理可以證明,在任何一台未安裝正確的密鑰容器Key的機器上,
程序都無法對connectionStrings節進行解密,因此也就無法正常運行。
6)導入key.xml文件
aspnet_regiis -pi 「Key」 「e:\Keys.xml」
此時,再運行程序會發現又可以解密了。證明加密與解密機制運行正常。
最後說一下這個機制所提供的安全性保障可以運用在什麼方面:
對winform程序的app.config進行加密實際意義並不大,因為無論如何,
客戶機都可以通過運行aspnet_regiis -pdf 來對配置文件進行解密,從而暴露敏感信息。
對於web.config進行加密的意義也僅限於,當web.config文件不小心泄露時,
不會同時泄露敏感信息,如果惡意攻擊者已經取得了在伺服器上運行程序的許可權,
那麼同app.config一樣,可以很容易通過通過運行aspnet_regiis -pdf 獲取明文了。
還有,通過aspnet_regiis -pa 「Key」 「NT AUTHORITY\NETWORK SERVICE」
控制對不同用戶對密鑰容器的訪問許可權,應該還可以進一步獲取一些安全性,
比如可以控制某些用戶即使登錄到伺服器上,也無法用aspnet_regiis -pdf對配置文件進行解密。
Ⅵ 怎樣在web.config中配置這些參數
web.config
Web配置文件(*.config)編輯本段認識Web.config文件
Web.config文件是一個XML文本文件,它用來儲存 ASP.NET Web 應用程序的配置信息(如最常用的設置ASP.NET Web 應用程序的身份驗證方式),它可以出現在應用程序的每一個目錄中。當你通過VB.NET新建一個Web應用程序後,默認情況下會在根目錄自動創建一個默認的 Web.config文件,包括默認的配置設置,所有的子目錄都繼承它的配置設置。如果你想修改子目錄的配置設置,你可以在該子目錄下新建一個Web.config文件。它可以提供除從父目錄繼承的配置信息以外的配置信息,也可以重寫或修改父目錄中定義的設置。 在運行時對Web.config文件的修改不需要重啟服務就可以生效(註:<processModel> 節例外)。當然Web.config文件是可以擴展的。你可以自定義新配置參數並編寫配置節處理程序以對它們進行處理。編輯本段web.config配置文件
(默認的配置設置)以下所有的代碼都應該位於 <configuration> <system.web> 和 </system.web> </configuration> 之間,出於學習的目的下面的示例都省略了這段XML標記 1、<authentication> 節 作用:配置 ASP.NET 身份驗證支持(為Windows、Forms、PassPort、None四種)。該元素只能在計算機、站點或應用程序級別聲明。<authentication> 元素必需與</autherization> 節配合使用。 示例: 以下示例為基於窗體(Forms)的身份驗證配置站點,當沒有登陸的用戶訪問需要身份驗證的網頁,網頁自動跳轉到登陸網頁。 <authentication mode="Forms" > <forms loginUrl="logon.aspx" name=".FormsAuthCookie"/> </authentication> 其中元素loginUrl表示登陸網頁的名稱,name表示Cookie名稱 2、<authorization> 節 作用:控制對 URL 資源的客戶端訪問(如允許匿名用戶訪問)。此元素可以在任何級別(計算機、站點、應用程序、子目錄或頁)上聲明。必需與</authentication> 節配合使用。 示例:以下示例禁止匿名用戶的訪問 <authorization> <deny users="?"/> </authorization> 註:你可以使用user.identity.name來獲取已經過驗證的當前的用戶名;可以使用 web.Security.FormsAuthentication.RedirectFromLoginPage方法將已驗證的用戶重定向到用戶剛才請求的頁面.具體的實例請參考: Forms驗證:http://www.knowsky.com/343322.html 3、<compilation>節 作用:配置 ASP.NET 使用的所有編譯設置。默認的debug屬性為「False」.在程序編譯完成交付使用之後應將其設為"True"(Web.config文件中有詳細說明,此處省略示例) 4、<customErrors> 作用:為 ASP.NET 應用程序提供有關自定義錯誤信息的信息。它不適用於 XML Web services 中發生的錯誤。 示例:當發生錯誤時,將網頁跳轉到自定義的錯誤頁面。 <customErrors defaultRedirect="ErrorPage.aspx" mode="RemoteOnly"> </customErrors> 其中元素defaultRedirect表示自定義的錯誤網頁的名稱。mode元素表示:對不在本地 Web 伺服器上運行的用戶顯示自定義(友好的)信息。 5、<httpRuntime>節 作用:配置 ASP.NET HTTP 運行庫設置。該節可以在計算機、站點、應用程序和子目錄級別聲明。 示例:控制用戶上傳文件最大為4M,最長時間為60秒,最多請求數為100 <httpRuntime maxRequestLength="4096" executionTimeout="60" appRequestQueueLimit="100"/> 6、 <pages> 作用:標識特定於頁的配置設置(如是否啟用會話狀態、視圖狀態,是否檢測用戶的輸入等)。<pages>可以在計算機、站點、應用程序和子目錄級別聲明。 示例:不檢測用戶在瀏覽器輸入的內容中是否存在潛在的危險數據(註:該項默認是檢測,如果你使用了不檢測,一要對用戶的輸入進行編碼或驗證),在從客戶端回發頁時將檢查加密的視圖狀態,以驗證視圖狀態是否已在客戶端被篡改。(註:該項默認是不驗證) <pages buffer="true" enableViewStateMac="true" validateRequest="false"/> 7、<sessionState> 作用:為當前應用程序配置會話狀態設置(如設置是否啟用會話狀態,會話狀態保存位置)。 示例: <sessionState mode="InProc" cookieless="true" timeout="20"/> </sessionState> 註: mode="InProc"表示:在本地儲存會話狀態(你也可以選擇儲存在遠程伺服器或SAL伺服器中或不啟用會話狀態) cookieless="true"表示:如果用戶瀏覽器不支持Cookie時啟用會話狀態(默認為False) timeout="20"表示:會話可以處於空閑狀態的分鍾數 8、<trace> 作用:配置 ASP.NET 跟蹤服務,主要用來程序測試判斷哪裡出錯。 示例:以下為Web.config中的默認配置: <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" /> 註: enabled="false"表示不啟用跟蹤;requestLimit="10"表示指定在伺服器上存儲的跟蹤請求的數目 pageOutput="false"表示只能通過跟蹤實用工具訪問跟蹤輸出; traceMode="SortByTime"表示以處理跟蹤的順序來顯示跟蹤信息 localOnly="true" 表示跟蹤查看器 (trace.axd) 只用於宿主 Web 伺服器編輯本段自定義Web.config文件配置節
自定義Web.config文件配置節過程分為兩步。 一是在在配置文件頂部 <configSections> 和 </configSections>標記之間聲明配置節的名稱和處理該節中配置數據的 .NET Framework 類的名稱。 二是在 <configSections> 區域之後為聲明的節做實際的配置設置。 示例:創建一個節存儲資料庫連接字元串 <configuration> <configSections> <section name="appSettings" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> </configSections> <appSettings> <add key="scon" value="server=a;database=northwind;uid=sa;pwd=123"/> </appSettings> <system.web> ...... </system.web> </configuration>編輯本段訪問Web.config文件
你可以通過使用ConfigurationSettings.AppSettings 靜態字元串集合來訪問 Web.config 文件示例:獲取上面例子中建立的連接字元串。 vb.net Dim sconstr As String = System.Configuration.ConfigurationManager.AppSettings("ConnectionString") c# ConnectionString string=System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];編輯本段創建Web.config文件
1.在「解決方案資源管理器」中,單擊「刷新」圖標以確認應用程序還沒有 Web.config 文件。 如果已使用網站管理工具或某些其他方式來配置應用程序,則可能已自動創建了 Web.config 文件。單擊「刷新」更新文件列表。 2.在「解決方案資源管理器」中,右擊網站名稱,然後單擊「添加新項」。 3.在「模板」窗口中,單擊「Web 配置文件」。 「名稱」文本框中的文件名應為 Web.config。可以為該文件提供其他名稱,不過這是默認名稱。.config 文件擴展名可防止 ASP.NET 下載相應文件。 4.單擊「添加」創建該文件,然後將其打開進行編輯。 該文件包含本主題後面「示例」部分中顯示的代碼,並具有一些初始默認值。應用程序從 %SystemRoot%\Microsoft.NET\Framework\<版本>\CONFIG 目錄下的 Machine.config 和 Web.config 文件繼承所有配置設置,但在此處看不到這些默認設置。如果要重寫繼承的默認設置或添加 httpHandlers 元素(ASP.NET 設置架構) 等集合元素,則只需創建應用程序級別和目錄級別的 Web.config 文件。 若要查看當前應用程序的所有配置設置,可以運行主題如何:以編程方式查看繼承的配置設置和本地配置設置中包含的代碼。也可以查看 %SystemRoot%\Microsoft.NET\Framework\<版本>\CONFIG 目錄下的 Machine.config.comments 或 Web.config.comments 文件(這兩個文件也包含有用的注釋),但這兩個文件將不會包含所有運行時設置,請參見如何:以編程方式查看繼承的配置設置和本地配置設置。 5.如果更改了 Web.config 文件,則保存該文件。 保存 Web.config 文件會重新啟動應用程序。也可以選擇使用單個節元素的 configSource 屬性指向某個輔助配置文件,更改輔助配置文件不會導致應用程序重新啟動。有關更多信息,請參見節元素所繼承的常規屬性中的 configSource。