In this article I will explain with an example, how to encrypt QueryString parameter values and send it to another page and then decrypt the encrypted QueryString parameter values in ASP.Net using C# and VB.Net.
This article makes use of System.Security.Cryptography class and AES algorithm for encryption and decryption in ASP.Net. 
 
 

QueryString Encryption

The following page will perform encryption of QueryString parameter values and then send it to another Page.

HTML Markup

The HTML Markup consist of following controls:
TextBox – For capturing Name value.
DropDownList – For capturing Technology value.
Button – For submitting the Form and redirecting to another page with QueryString parameter values.
The Button has been assigned with an OnClick event handler.
<table border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td>Name:</td>
        <td>
            <asp:TextBox ID="txtName"runat="server" Text="Mudassar Khan"/>
        </td>
    </tr>
    <tr>
        <td>Technology:</td>
        <td>
            <asp:DropDownList ID="ddlTechnology"runat="server">
                <asp:ListItem Text="ASP.Net" Value="ASP.Net"/>
                <asp:ListItem Text="PHP" Value="PHP"/>
                <asp:ListItem Text="JSP" Value="JSP"/>
            </asp:DropDownList>
        </td>
    </tr>
</table>
<hr/>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="Submit"/>
 
 

Namespaces

You will need to import the following namespaces.
C#
using System.Text;
using System.Security.Cryptography;
 
VB.Net
Imports System.Text
Imports System.Security.Cryptography
 
 

Encrypting QueryString parameter values

When the Submit button is clicked, the fetched values of TextBox and DropDownList is passed as parameter to Encrypt method.
Note: For details on Encryption method, please refer my article  AES Encryption Decryption (Cryptography) Tutorial with example in ASP.Net using C# and VB.Net.
 
C#
protected void Submit(object sender, EventArgs e)
{
    string name = HttpUtility.UrlEncode(this.Encrypt(txtName.Text.Trim()));
    string technology = HttpUtility.UrlEncode(this.Encrypt(ddlTechnology.SelectedItem.Value));
    Response.Redirect(string.Format("~/CS2.aspx?name={0}&technology={1}", name, technology));
}
 
private string Encrypt(string plainText)
{
    //Secret Key.
    string secretKey = "$ASPcAwSNIgcPPEoTSa0ODw#";
 
    //Secret Bytes.
    byte[] secretBytes = Encoding.UTF8.GetBytes(secretKey);
 
    //Plain Text Bytes.
    byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText);
 
    //Encrypt with AES Alogorithm using Secret Key.
    using (Aes aes = Aes.Create())
    {
        aes.Key = secretBytes;
        aes.Mode = CipherMode.ECB;
        aes.Padding = PaddingMode.PKCS7;
 
        byte[] encryptedBytes = null;
        using (ICryptoTransform encryptor = aes.CreateEncryptor())
        {
            encryptedBytes = encryptor.TransformFinalBlock(plainTextBytes, 0, plainTextBytes.Length);
        }
 
        return Convert.ToBase64String(encryptedBytes);
    }
}
 
VB.Net
Protected Sub Submit(ByVal sender As Object, ByVal e As EventArgs)
    Dim name As String = HttpUtility.UrlEncode(Me.Encrypt(txtName.Text.Trim()))
    Dim technology As String = HttpUtility.UrlEncode(Me.Encrypt(ddlTechnology.SelectedItem.Value))
     Response.Redirect(String.Format("~/VB2.aspx?name={0}&technology={1}", name, technology))
End Sub
 
Private Function Encrypt(ByVal plainText As String) As String
    'Secret Key.
    Dim secretKey As String = "$ASPcAwSNIgcPPEoTSa0ODw#"
 
    'Secret Bytes.
    Dim secretBytes As Byte() = Encoding.UTF8.GetBytes(secretKey)
 
    'Plain Text Bytes.
    Dim plainTextBytes As Byte() = Encoding.UTF8.GetBytes(plainText)
 
    'Encrypt with AES Alogorithm using Secret Key.
    Using aes As Aes = Aes.Create()
        aes.Key = secretBytes
        aes.Mode = CipherMode.ECB
        aes.Padding = PaddingMode.PKCS7
        Dim encryptedBytes As Byte() = Nothing
        Using encryptor As ICryptoTransform = aes.CreateEncryptor()
            encryptedBytes = encryptor.TransformFinalBlock(plainTextBytes, 0, plainTextBytes.Length)
        End Using
        Return Convert.ToBase64String(encryptedBytes)
    End Using
End Function
 
 

QueryString Decryption

HTML Markup

The HTML markup consists following controls:
Label – For displaying QueryString values.
<table border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td>Name:</td>
        <td>
            <asp:Label ID="lblName" runat="server" Text="" />
        </td>
    </tr>
    <tr>
        <td>Technology:</td>
        <td>
            <asp:Label ID="lblTechnology" runat="server" Text="" />
        </td>
    <tr>
</table>
 
 

Namespaces

You will need to import the following namespaces.
C#
using System.Web;
using System.Text;
using System.Security.Cryptography;
 
VB.Net
Imports System.Web
Imports System.Text
Imports System.Security.Cryptography
 
 

Decrypting QueryString Parameter values

Inside the Page_Load event handler, the Decrypt method called which accepts the QueryString fetched from the URL of the page from where the page is being redirected.
Note: For details on Decryption method, please refer my article  AES Encryption Decryption (Cryptography) Tutorial with example in ASP.Net using C# and VB.Net.
 
C#
protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        lblName.Text = this.Decrypt(HttpUtility.UrlDecode(Request.QueryString["name"]));
        lblTechnology.Text = this.Decrypt(HttpUtility.UrlDecode(Request.QueryString["technology"]));
    }
}
 
private string Decrypt(string encryptedText)
{
    //Secret Key.
    string secretKey = "$ASPcAwSNIgcPPEoTSa0ODw#";
 
    //Secret Bytes.
    byte[] secretBytes = Encoding.UTF8.GetBytes(secretKey);
 
    //Encrypted Bytes.
    byte[] encryptedBytes = Convert.FromBase64String(encryptedText);
 
    //Decrypt with AES Alogorithm using Secret Key.
    using (Aes aes = Aes.Create())
    {
        aes.Key = secretBytes;
        aes.Mode = CipherMode.ECB;
        aes.Padding = PaddingMode.PKCS7;
 
        byte[] decryptedBytes = null;
        using (ICryptoTransform decryptor = aes.CreateDecryptor())
        {
            decryptedBytes = decryptor.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
        }
 
        return Encoding.UTF8.GetString(decryptedBytes);
    }
}
 
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    If Not Me.IsPostBack Then
        lblName.Text = Me.Decrypt(HttpUtility.UrlDecode(Request.QueryString("name")))
        lblTechnology.Text = Me.Decrypt(HttpUtility.UrlDecode(Request.QueryString("technology")))
    End If
End Sub
 
Private Function Decrypt(ByVal encryptedText As String) As String
    'Secret Key.
    Dim secretKey As String = "$ASPcAwSNIgcPPEoTSa0ODw#"
 
    'Secret Bytes.
    Dim secretBytes As Byte() = Encoding.UTF8.GetBytes(secretKey)
 
    'Plain Text Bytes.
    Dim encryptedBytes As Byte() = Convert.FromBase64String(encryptedText)
 
    'Encrypt with AES Alogorithm using Secret Key.
    Using aes As Aes = Aes.Create()
        aes.Key = secretBytes
        aes.Mode = CipherMode.ECB
        aes.Padding = PaddingMode.PKCS7
        Dim decryptedBytes As Byte() = Nothing
        Using decryptor As ICryptosTransform = aes.CreateDecryptor()
            decryptedBytes = decryptor.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length)
        End Using
        Return Encoding.UTF8.GetString(decryptedBytes)
    End Using
End Function
 
 

Screenshot

Encrypt and Decrypt QueryString Parameter Values in ASP.Net using C# and VB.Net
 
 

Demo

 
 

Downloads