In this article, I will provide some example to encrypt and decrypt Connection Strings in Web.Config file in ASP.Net.
The Encryption and Decryption of the Web.Config file’s ConnectionStrings section
will be performed using aspnet_regiis.exe Command Line Utility of the Visual Studio.
The plan text connection string in web.config file.
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial
Catalog=Northwind;" />
</connectionStrings>
</configuration>
Encrypting the connection string in web.config file
You need to follow the following steps for encrypting the Connection Strings in the Web.Config file
1. Open Visual Studio Command Prompt
You will need to open the Visual Studio Command Prompt from the Start Menu =>
Programs => Microsoft Visual Studio 2010 => Visual Studio Tools => Visual Studio Command Prompt.
Note: You must be login as Administrator and right-click Visual Studio Command Prompt and select.
Note: In this tutorial, I am explaining the process using Microsoft Visual Studio 2015
The same process will be applicable to the other versions. The only difference will be that you
need to open Visual Studio Command Prompt from the
folder of the respective version of Visual Studio installed on your machine.
2. Encrypting the Connection String in Web.Config using aspnet_regiis.exe tool
In order to encrypt the ConnectionString section in the Web.Config file, we will need to
use the aspnet_regiis.exe tool
Parameters
Action - It notifies the action to be performed. In order to perform Encryption, the parameter value is -pef
Section Name - The name of the section of the Web.Config file to be encrypted.
For this case, the value will be connectionStrings
Path of the folder – Here we need to specify the path of the folder containing
the Web.Config file.
Syntax : aspnet_regiis.exe -pef "connectionStrings" "<Path of the Folder containing the Web.Config file>"
Example : aspnet_regiis.exe -pef "connectionStrings" "D:\Mudassar\Projects\MyTestWebsite"
Note: The above command will encrypt all the Connection Strings present in
the ConnectionStrings section of the Web.Config file.
Encrypted Connection String in the Web.Config file
The following screenshot shows the Encrypted Connection String in the Web.Config
file after encryption.
<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>ZbDTF00MYzUUW5U3w3PU0rfiAH1UKhvuLSNWPmB/YifBKne6HAWfVc3CnKVimy
P8SFyamaR5o AIAxj/xavfpox8EOYXNI+afsksiuA5huSDupCZKNuXq+VCZrdIyn6YOq+W7s3Ojlu7q9VwKco
Kurl28l2hcPvWkBk11KYB7hr0=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>42IPPRUjJxCNDHEBLCAJI4/NyLpLueZSBzUXO69lVdZU8+nLpxO+opnbZNxqddyzNnbCO1
Uk2Da 3ljExkqnLIxT2zs90JAhZvJ5ljIgCipq7ZEp7zHOpvTH9fBGoZJJWhgdddOrHZsLDE9mILjlvBHDhPQrYcMHt
Y6oLIbxJq92it82iBJv0fS7v1S/o0p4hAtfky+6hXCZWSKUJHr88NDrKe2EEK3mazD2QD5Ozf/w=</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
</configuration>
Accessing the Encrypted Connection String value in ASP.Net Code behind
ASP.Net will automatically decrypt the Connection String when it is fetched in the code behind and
hence in code behind you need to access the Connection String in the same way as you would do normally.
string ConnString = ConfigurationManager.ConnectionStrings[“SqlServices
”].ToString();
Decrypting the Connection String in Web.Config using aspnet_regiis.exe tool
In order to decrypt the ConnectionString section in the Web.Config file, we will need to use the same
aspnet_regiis.exe tool that was used for encryption.
Parameters
Action – It notifies the action to be performed. In order to perform Decryption, the parameter value is -pdf.
Section Name – The name of the section of the Web.Config file to be decrypted. For this case,
the value will be connectionStrings.
Path of the folder – Here we need to specify the path of the folder containing the Web.Config file.
Syntax
aspnet_regiis.exe -pdf "connectionStrings" "<Path of the Folder containing the Web.Config file>"
Example
aspnet_regiis.exe -pdf "connectionStrings" "D:\Mudassar\Projects\MyTestWebsite"
Note: The above command will decrypt all the Connection Strings present in
the ConnectionStrings section of the Web.Config file.