ASP.NET web.config中 數(shù)據(jù)庫連接字符串加密解密

字號:


    本文主要介紹利用aspnet_regiis.exe工具對web.config中connectionStrings節(jié)點進行加密和解密的過程,希望對大家有所幫助。
    雖然不怎么新鮮,但相信還是有許多人不知道,好,不說廢話,直接給方法:開始--->運行,輸入cmd,接著輸入以下內(nèi)容
    加密:
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "你的Web項目路徑"
    解密:
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings" "你的Web項目路徑"
    .NET為版本的路徑自行修改,其中connectionStrings連接字符串的名稱。
    需要注意的是,加密過程中使用了一個基于本機的密鑰,這意味著解密過程必須在同一臺計算機上完成。如果是將加密后的Web.config文件移動到其它計算機上,那么Web.config文件中的連接字符串將不能夠正常解密。
    附加密前后對比:
    1.加密前
    <configuration>
      <connectionStrings>
        <add name="ConnectionName" connectionString="Server=127.0.0.1;Database=TestDB;User ID=sa;Password=ok"
         providerName="System.Data.SqlClient" />
      </connectionStrings>
    </configuration>
    2.加密后
    <configuration>
      <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
        <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>fDfW3bnVt21RF3N39vDoPphEmDYbUX4cmciD/3+LMY0yRLHckyulnnyBLoflB7DUjyXXms0V33e7MOKt+u2TAocn6x+QHo9Z4Onf1fV0nEq6uTprWZ04M8SLbKp+Vg63JLtYQUft6xF+Bi/aN/ZJ3PYal93bdfNJjtXA2xsb82k=</CipherValue>
              </CipherData>
            </EncryptedKey>
          </KeyInfo>
          <CipherData>
            <CipherValue>92WEStBHBh0zeu705wseRUajhAHumV9uCrmFJWII8SrhQpjEDrSl0OAfhwYFENr4xpHSfkNDTEFVV5D4MXr3meMsCcp+oYEQxQ/mg1QYLe9mGD+NEaBnv95WzaDcdDyE1SkNKkq01pX94OUV1OygsQtEx1fCZd6le8fd7kx4PAFKDD0he6ajzNFmCoFxg1Dd1+MD3mukgFef64NbjYovTNW8v2G67wLE8vnrokxIvs6+0+rnpLepDAyiEDaL2D3jJWNcQrl+UXI=</CipherValue>
          </CipherData>
        </EncryptedData>
      </connectionStrings>
    </configuration>