locked
criptografar a senha RRS feed

  • Pergunta

  • Ola pessoal,

     

    Estou com uma dúvida, em um projeto silverligth Business , qual é a melhor maneira quanto a criptografar uma senha para gravar no banco,

    ela deverá ser processado no lado cliente, ou no servidor ???/  criei esta classe no cliente , mais não consigo executar

     public partial class Cripto

        {

            public string md5_encriptar(string md5)

            {

                System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();  <<<----- erro

                byte[] bs = System.Text.Encoding.UTF8.GetBytes(md5);

                bs = x.ComputeHash(bs);

                System.Text.StringBuilder s = new System.Text.StringBuilder();

                foreach (byte b in bs)

                {

                    s.Append(b.ToString("x2").ToLower());

                }

                string password = s.ToString();

                return password;

            }

        }

     Alguem pode me dar uma dica ???

    Mauro

     

     

     

    sábado, 16 de outubro de 2010 01:17

Todas as Respostas

  • Mauro,

    Essa classe não existe no Silverlight. Na minha visão o ideal é enviar a senha para um serviço no servidor realizar a criptografia e então armazenar no banco.

    Espero ter ajudado.

    Att.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com

    sábado, 16 de outubro de 2010 13:53
  • Mauro,

    Em geral, também acho melhor criptografar a senha no servidor, pois deixar a rotina de criptografia no client pode comprometer a segurança - no caso de uma engenharia reversa um usuário malicioso tem acesso a sua rotina de criptografia. Contudo, como você está usando MD5 Hash, cujo algoritmo é público e a criptografia é unidirecional, não vejo mal em realizar a criptografia no próprio client. Para isto você terá de implementar sua própria rotina, já que o silverlight não a possui. Você deve encontrar implementações do algoritmo em C# puro, como este, mas não trabalhei com nenhuma e não garanto o funcionamento. Caso você opte por criptografar a senha no servidor, lembre-se também de garantir o trânsito dela entre o cliente e o servidor com segurança, se você julgar necessário.

    De qualquer forma, se você puder evitar e fizer sentido, utilize algum outro algoritmo. Existem dicionários bastante completos para quebrar senhas em MD5 através de bruteforce.

    Abraço


    Bruno Rodrigues www.devdotnet.com.br
    domingo, 17 de outubro de 2010 18:47