AnswerBun.com

C# Criptografia de senhas

Stack Overflow em Português Asked by Eric Jhon on November 30, 2020

Preciso salvar senhas de acesso dos usuários de um sistema no banco de dados e pensei em usar os códigos abaixo para criptografar as senhas usando as próprias senhas como chave. A verificação da senha seria feita criptografando a senha inserida no form de login e comparando o resultado com a senha criptografada salva no banco de dados.

Criptografar:

            public static string Criptografar(string entrada, string chave)
        {
            TripleDESCryptoServiceProvider tripledescryptoserviceprovider = new TripleDESCryptoServiceProvider();
            MD5CryptoServiceProvider md5cryptoserviceprovider = new MD5CryptoServiceProvider();
            try
            {
                if ((entrada.Trim() != ""))
                {
                    // Aqui vc inclui uma chave qualquer para servir de base para cifrar, que deve ser a mesma no m�todo Decodificar
                    tripledescryptoserviceprovider.Key = md5cryptoserviceprovider.ComputeHash(Encoding.Default.GetBytes(chave));
                    tripledescryptoserviceprovider.Mode = CipherMode.ECB;
                    ICryptoTransform desdencrypt = tripledescryptoserviceprovider.CreateEncryptor();
                    byte[] buff = Encoding.Default.GetBytes(entrada);
                    return Convert.ToBase64String(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
                }
                else
                    return "";
            }
            catch (Exception ex)
            {
                // MsgBox(exception.Message, MsgBoxStyle.Exclamation)
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                tripledescryptoserviceprovider = null/* TODO Change to default(_) if this is not a reference type */;
                md5cryptoserviceprovider = null/* TODO Change to default(_) if this is not a reference type */;
            }
        }

Descriptografar:

            public static string Descriptografar(string entrada, string chave)
        {
            TripleDESCryptoServiceProvider tripledescryptoserviceprovider = new TripleDESCryptoServiceProvider();
            MD5CryptoServiceProvider md5cryptoserviceprovider = new MD5CryptoServiceProvider();
            try
            {
                if ((entrada.Trim() != ""))
                {
                    tripledescryptoserviceprovider.Key = md5cryptoserviceprovider.ComputeHash(Encoding.Default.GetBytes(chave));
                    tripledescryptoserviceprovider.Mode = CipherMode.ECB;
                    ICryptoTransform desdencrypt = tripledescryptoserviceprovider.CreateDecryptor();
                    byte[] buff = Convert.FromBase64String(entrada);
                    return Encoding.Default.GetString(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
                }
                else
                    return "";
            }
            catch (Exception ex)
            {
                // MsgBox(exception.Message, MsgBoxStyle.Exclamation)
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                tripledescryptoserviceprovider = null/* TODO Change to default(_) if this is not a reference type */;
                md5cryptoserviceprovider = null/* TODO Change to default(_) if this is not a reference type */;
            }
        }

Gostaria de saber o que acham desse método e se tiverem melhores sugestões, agradeço.

Add your own answers!

Related Questions

A conta matematica ta dando errado?? C#

1  Asked on December 16, 2021 by zehous

 

Qual utilidade de declarar uma coluna como Char(0)?

1  Asked on December 16, 2021 by user60252

   

Repetir campos de acordo com o numero do dropdown

3  Asked on December 16, 2021 by fabio-henrique

   

Vue router – problema com links dinamicos

0  Asked on December 16, 2021 by gabriel-porcher

       

Existe algo que compare o tipo do objeto?

1  Asked on December 16, 2021 by qattus

     

Angular múltiplos ngif else passando parametro no template

1  Asked on December 14, 2021 by herick

 

Condição de saída no do-while em código C

1  Asked on December 14, 2021 by steeph

       

Para que serve esse ‘in’ em C#?

1  Asked on December 14, 2021 by cypherpotato

     

Sobrecarga de método é polimorfismo?

1  Asked on December 14, 2021 by douglas-da-dias-silva

       

Não estou conseguindo cadastrar o nome de uma pessoas na minha agenda

2  Asked on December 14, 2021 by rafael-marques

     

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir