Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ronan Muller

Criptografia em C#

Recommended Posts

Galera é o seguinte

 

Estou desenvolvendo um webservice em C# que irá criptografar/decriptografar dados usando Rijndael como algoritimo e estou me deparando com um problema. As aplicações que iram acessar esse webservice foram feitas em outras linguagens (C++ e Delphi), e irão usar do mesmo algoritimo para criptografar/decriptografar dados que serão tratados no webservice. O problema é o seguinte. Os códigos que encontro como base para criar o tratamento em Rijndael usam de maneira muito estranha a KEY e o IV pargerar os dados. Geralmente, é usando a classe PasswordDeriveBytes para tratar estes dados e não sei como estas aplicações em outras linguagens vão tratar essa questão. Preciso de um algoritimo mais "limpo", ou seja, que passa direto para a KEY e o IV, uma string convertidade em bytes para conseguir sincronia entre os dados criptografados gerados por ambas aplicações. Alguem tem alguma dica?

 

Segue um modelo de código que gostaria, pois as aplicações tem funções similares na Encriptação e Decriptação dos dados;

 

private string Encriptar(string textoSemCripto, string senha, int Bits)

{

string textoCriptografado = string.Empty;

byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(textoSemCripto);

MemoryStream ms = new MemoryStream();

//Como exemplo assuma Bits = 128

Rijndael alg = Rijndael.Create();

alg.Key = Key; //Gostaria de gerar a chave sem o uso da classe PasswordDeriveBytes

alg.IV = IV; //Gostaria de gerar a IV sem o uso da classe PasswordDeriveBytes

CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write);

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

cs.Close();

byte[] encryptedData = ms.ToArray();

return textoCriptografado = Convert.ToBase64String(encryptedData);

}

 

Obrigado

 

Ronan Muller

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é o seguinte: Tenho duas aplicações, uma em C++ e outra em Delphi que criptrografam em Rijndael, senhas e logins e enviam como parametro pra o meu webservice em c#. Dentro do Webservice, eu tenho que decriptografar esses dados e trata-los. O problema é que a criptografia com a classe Rijndael do .Net nunca bate com as criptografias feitas em outras linguagens. A unica coisa que eu sei é o tamanho de 128 bits. Eu sei que em .net, todos os codigos que vi usam a classe PasswordDeriveBytes para tratar a chave. Não sei se esse cara está atrapalhando. Preciso de um código em c# cujo valor gerado seja igual ao valor gerado em C++ e Delphi. Simples assim..

 

Vlws

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.