Criptografar e descriptografar uma variável para URL - RSA - C#
Boa tarde gente.
Criei uma classe e 2 métodos, um para criptografar e outro para descriptografar uma variável que será o parâmetro de uma URL.
public string retornaCrypto(string str) {
RSACryptoServiceProvider myrsa = new RSACryptoServiceProvider();
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();//Encode String to Convert to Bytes
Byte[] dado = encoding.GetBytes(str);//convert to Bytes
Byte[] crypto = myrsa.Encrypt(dado, false);
string strCrypto = "";
for (int i = 0; i < crypto.Length; i++){
strCrypto += crypto[i];
}
return strCrypto;
}
public string retornaDecrypto(string str)
{
RSACryptoServiceProvider myrsa = new RSACryptoServiceProvider();
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();//Encode String to Convert to Bytes
Byte[] dado = encoding.GetBytes(str);//convert to Bytes
Byte[] decrypto = myrsa.Decrypt(dado, false);//decrypt
string dData = encoding.GetString(decrypto); //encode bytes back to string
string strDecrypto = "";
for (int i = 0; i < decrypto.Length; i++){
strDecrypto = dData[i].ToString();
}
return strDecrypto;
}Funciona certinho, o problema é que quando eu mando criptografar uma variável de id, por exemplo o número "9", ele retorna uma variável (criptografada) muito grande, não sendo muito interessante para se colocar como parâmetro de uma URL.
Outro problema é que quando eu pego essa mesma variável e mando descritografar ele resulta um erro dizendo que a variável excede o número de 128 bytes. Mas foi ele mesmo quem criou essa variável. :blink:
Erro:
The data to be decrypted exceeds the maximum for this modulus of 128 bytes
Como eu faço pra diminuir a variável criptografada e conseguir depois descriptografar?
Vlw!
Discussão (7)
Carregando comentários...