Criptografando a QueryString

2 Comments

Muito de nós usamos parametros QueryString para passar informações de uma pagina para outra como por exemplo um produto selecionado:http://localhost:1234/DadosProduto.aspx?id=10

O problema de fazer assim é que os dados ficam viziveis ao usuario, e se ele for um usuario mais avançado tentará acessar informações que talvez não poderia ser vizualizado por ele, então neste caso faremos um exemplo de como criptografar a QueryString asssim:http://localhost:1234/DadosProduto.aspx?id=03EscXnBsci=

Desta maneira o id do produto está criptografado, no nosso exemplo iremos precisar apenas de dois metodos um de criptografar e outro para descriptografar vamos lá

Criaremos uma classe chamada Encryption64:


using
System; 

using System.Linq;

using System.Text;

using System.IO;

using System.Security.Cryptography;

 

Veja também


///
<summary>

/// Classe para Criptografar e Descriptografar parametros

/// QueryString

/// </summary>

namespace ExemploQueryString

{

    public class Encryption64

    {

        private static byte[] key = { };

        private static byte[] IV = { 0×12, 0×34, 0×56, 0×78,

                                   0×90, 0xAB, 0xCD, 0xEF };

 

        public static string Encrypt(string stringToEncrypt,

        string sEncryptionKey)

        {

            byte[] inputByteArray;

 

            try

            {

                key = Encoding.UTF8.GetBytes(sEncryptionKey.

                Substring(0, 8));

                DESCryptoServiceProvider des =

                new DESCryptoServiceProvider();

                inputByteArray = Encoding.UTF8.GetBytes

                (stringToEncrypt);

                MemoryStream ms = new MemoryStream();

                CryptoStream cs = new CryptoStream(ms,

                des.CreateEncryptor(key, IV), CryptoStreamMode

                .Write);

                cs.Write(inputByteArray, 0, inputByteArray.Length);

                cs.FlushFinalBlock();

 

                return Convert.ToBase64String(ms.ToArray());

 

            }

            catch (System.Exception ex)

            {

 

                throw ex;

            }

 

        }

 

        public static string Decrypt(string stringToDecrypt,

        string sEncrytionKey)

        {

            byte[] inputByteArray = new byte[stringToDecrypt

            .Length];

 

            try

            {

                key = Encoding.UTF8.GetBytes(sEncrytionKey

                .Substring(0, 8));

                DESCryptoServiceProvider des =

                new DESCryptoServiceProvider();

                inputByteArray =

                Convert.FromBase64String(stringToDecrypt.Replace(

                ” “, “+”));

                MemoryStream ms = new MemoryStream();

                CryptoStream cs = new CryptoStream(ms, des.

                CreateDecryptor(key,IV),CryptoStreamMode.Write);

                cs.Write(inputByteArray, 0 , inputByteArray.Length);

                cs.FlushFinalBlock();

 

                Encoding encoding = Encoding.UTF8;

                return encoding.GetString(ms.ToArray());

 

 

            }

            catch (Exception ex)

            {

 

                throw ex;

            }

        }

 

 

    }

}

 

Para criptografar a url utilize:

protected void Button1_Click(object sender, EventArgs e) 

{

string url = “~/DadosProduto.aspx?ID=” + Encryption64.Encrypt(“10″, “!#$a54?3″);

Response.Redirect(url);

}

 

 

E para descriptografar:

protected void Page_Load(object sender, EventArgs e)

{

Response.Write(“O Produto Selecionado foi o:” +

Encryption64.Decrypt(Request.QueryString["ID"], “!#$a54?3″));

}

 

img2 Criptografando a QueryString

 

 

Fazer Download dos arquivos

 

Este conteudo tem referencia do Rodrigo Sendin

 

Qualquer duvido é só comentar

 

Vlw até +

 

 

Artigos Relacionados:

2 Comments (+add yours?)

  1. ALYSSON
    dez 03, 2009 @ 12:15:14

    Embora ainda nao tenha testado, eu imaginei o seguinte:
    Se eu tiver um gridview que é populado via hard-code, ou seja, lá no aspx mesmo, como eu faço para ela criptografar um parametro na querystring.

  2. Leonardo Moreno
    dez 03, 2009 @ 12:25:26

    Entao Alysson, você pega o valor da gridview e faz a conversão entendeu? no mesmo esquema

Leave a Reply

Blog WebMastered by All in One Webmaster.