DaniloTec 0 Denunciar post Postado Julho 2, 2009 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! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 2, 2009 De uma olhada e veja se ajuda: http://msdn.microsoft.com/pt-br/library/sy...pDownFilterText Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Julho 3, 2009 Eu sonho que um dia no C# teremos um método chamado Encripta(string) e Decripta(string), sem precisar ficar usando bytes. Não sei muito de criptografia, já conferiu para ver se o algoritmo está implementado corretamente? Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Julho 3, 2009 Não ajudou muito não. Pelo menos eu não vi nada que me ajudasse a diminuir o resultado a criptografia. :P Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 3, 2009 Eu sonho que um dia no C# teremos um método chamado Encripta(string) e Decripta(string), sem precisar ficar usando bytes. Não sei muito de criptografia, já conferiu para ver se o algoritmo está implementado corretamente? Na web o MD5 não precisa trabalhar com bytes, mas em compensação não faz a descriptografia (teoricamente). Agora RSACryptoServiceProvider eu não conheço, por isso só indiquei o site para que pudesse dar uma comparada nos códigos. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Julho 3, 2009 Os dois métodos que eu fiz funcionam certinho. Criptografa e descriptografa perfeitamente. O único problema é o tamanho da criptografia. Por exemplo, para o número 9 ele gera: 43192651762439512166253811111213122922225016819111916520285558165525021571683728 472438015915625314291951551571926738514399113191125202231100167202155139210184199 189114226782810149243133162161249148382722255824179757515523134137253215881618247 2819039892241962361071351603914620677594111384842281518119564136371454595221Isso é totalmente inviável pra colocar em uma URL. Por isso estou tentando encontrar uma forma de diminuir isso. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 3, 2009 Mas o por que informar via URL? Não pode armazenar em Session ou coisa do tipo. Ainda mais criptografia que podem ser descriptografadas, não tem segurança nenhuma passando pela url. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Julho 6, 2009 O que eu preciso é o seguinte: Enviar para o e-mail de um cliente uma URL com um parâmetro (id) para ele acessar um conteúdo exclusivo. É este parâmetro (id) que eu quero criptografar, entende? Existe uma outra solução? Eu estou aceitando sugestões. Compartilhar este post Link para o post Compartilhar em outros sites