Monday, 11 August 2014

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

 

QueryString encrypt from a GridView HyperLink?

 Step-1

<asp:TemplateField HeaderText="View">
      <ItemTemplate>
           <asp:HyperLink id="hlLinkView" Text="View" runat="server"/>
      </ItemTemplate>
</asp:TemplateField>

 Step-2

In RowDataBound Event of GridView

if (e.Row.RowType == DataControlRowType.DataRow)
{
   Label lblPoNoEncrypt = ((Label) e.Row.FindControl("lblPoNo"));
((HyperLink)e.Row.FindControl("hlLinkView")).NavigateUrl = "abc.aspx?Parameter=" + Encrypt(lblAbcEncrypt.Text);

}

Step-3

Add this function


public string Encrypt(string clearText)
        {
            string EncryptionKey = "MAKV2SPBNI99212";
            byte[] clearBytes = Encoding.Unicode.GetBytes(clearText);
            using (Aes encryptor = Aes.Create())
            {
                Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
                encryptor.Key = pdb.GetBytes(32);
                encryptor.IV = pdb.GetBytes(16);
                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(clearBytes, 0, clearBytes.Length);
                        cs.Close();
                    }
                    clearText = Convert.ToBase64String(ms.ToArray());
                }
            }
            return clearText;
        }


Step-4:-

At decryption side add this code:

 

private string Decrypt(string cipherText)
        {
            string EncryptionKey = "MAKV2SPBNI99212";
            cipherText = cipherText.Replace(" ", "+");
            byte[] cipherBytes = Convert.FromBase64String(cipherText);
            using (Aes encryptor = Aes.Create())
            {
                Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
                encryptor.Key = pdb.GetBytes(32);
                encryptor.IV = pdb.GetBytes(16);
                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(cipherBytes, 0, cipherBytes.Length);
                        cs.Close();
                    }
                    cipherText = Encoding.Unicode.GetString(ms.ToArray());
                }
            }
            return cipherText;
        }


Step-5:

if (Request.QueryString["Parameter"] != "")
 {
    txt_No.Text = Decrypt(HttpUtility.UrlDecode(Request.QueryString["PoNo"].ToString()));

}

 

Reference: -

Encrypt and Decrypt QueryString Parameter Values in ASP.Net

using C# and VB.Net

 

1 comment:

  1. i read a lot of stuff and i found that the way of writing to clearifing that exactly want to say was very good so i am impressed and ilike to come again in future..
    cs代写

    ReplyDelete