Criptografar e Descriptografar C#

2,944 views
Skip to first unread message

Edinei Steffen

unread,
Jan 4, 2011, 8:28:23 AM1/4/11
to Grupo ASP.NET GOO
Bom dia, Pessoal...

Gostaria da sua dica, quanto a uma boa função para critografar e descritpografar uma string... 

Aguardo..

--
Atenciosamente,
-----------------------------------------------------
Edinei Daniel Steffen
Analista e Desenvolvedor Sistemas
E-mail: edinei...@gmail.com


"Quem quer fazer alguma coisa, encontra um meio. Quem não quer fazer nada, encontra uma desculpa."

Renato Cantarino

unread,
Jan 4, 2011, 8:42:27 AM1/4/11
to dotn...@googlegroups.com
http://csharpbrasil.com.br/2008/10/24/dica-criptografia-md5-com-c-sharp/

--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com

Neryval Lima

unread,
Jan 4, 2011, 8:44:00 AM1/4/11
to dotn...@googlegroups.com
    Public Function Encrypt(ByVal texto As String) As String

        Dim CrypText As String = Nothing
        Dim b As Byte()

        Try
            b = System.Text.ASCIIEncoding.ASCII.GetBytes(texto)
            CrypText = Convert.ToBase64String(b)
            Return CrypText
        Catch ex As Exception
            GravaLog("Encrypt", ex.Message, False)
            Return Nothing
        End Try

    End Function

    Public Function DCrypt(ByVal texto As String) As String

        Dim CrypText As String = Nothing
        Dim b As Byte()

        Try
            b = Convert.FromBase64String(texto)
            CrypText = System.Text.ASCIIEncoding.ASCII.GetString(b)
            Return CrypText
        Catch ex As Exception
            GravaLog("Encrypt", ex.Message, False)
            Return Nothing
        End Try

    End Function

--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com



--
Neryval Lima
.NET Programmer
+55 71 8104.9679
+55 71 3644.2107
Camaçari, Bahia - Brasil
Skype : neryval.lima

Neryval Lima

unread,
Jan 4, 2011, 8:45:02 AM1/4/11
to dotn...@googlegroups.com
Public Function GeraHash(ByVal texto As String) As String
        'Metodo para criptografar a senha

        'Cria um objeto enconding para assegurar o padrão 
        'de encondig para o texto origem
        Dim Ue As New System.Text.UnicodeEncoding

        'Retorna um byte array baseado no texto origem
        Dim ByteSourceText() As Byte = Ue.GetBytes(texto)

        'Instancia um objeto MD5
        Dim Md5 As New System.Security.Cryptography.MD5CryptoServiceProvider

        'Calcula o valor do hash para o texto origem
        Dim ByteHash() As Byte = Md5.ComputeHash(ByteSourceText)
        Md5 = Nothing
        Ue = Nothing
        ByteSourceText = Nothing

        'Chamando o coletor de lixo 
        GC.Collect()

        Dim sBuilder As New System.Text.StringBuilder()
        ' and format each one as a hexadecimal string.
        Dim i As Integer
        For i = 0 To ByteHash.Length - 1
            sBuilder.Append(ByteHash(i).ToString("x2"))
        Next i

        'Converte o valor obtido para o formato string
        Return Convert.ToBase64String(ByteHash)


    End Function

Em 4 de janeiro de 2011 10:28, Edinei Steffen <edinei...@gmail.com> escreveu:
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com

José Ferro

unread,
Jan 4, 2011, 8:48:38 AM1/4/11
to dotn...@googlegroups.com
Edinei,
Aqui, utilizamos esses métodos:

public static string Codificar(string entrada)
        {
            TripleDESCryptoServiceProvider tripledescryptoserviceprovider = new TripleDESCryptoServiceProvider();
            MD5CryptoServiceProvider md5cryptoserviceprovider = new MD5CryptoServiceProvider();

            try
            {
                if (entrada.Trim() != "")
                {
                    string myKey = "1111111111111111";  //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(ASCIIEncoding.ASCII.GetBytes(myKey));
                    tripledescryptoserviceprovider.Mode = CipherMode.ECB;
                    ICryptoTransform desdencrypt = tripledescryptoserviceprovider.CreateEncryptor();
                    ASCIIEncoding MyASCIIEncoding = new ASCIIEncoding();
                    byte[] buff = Encoding.ASCII.GetBytes(entrada);

                    return Convert.ToBase64String(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));

                }
                else
                {
                    return "";
                }
            }
            catch (Exception exception)
            {
                throw exception;
            }
            finally
            {
                tripledescryptoserviceprovider = null;
                md5cryptoserviceprovider = null;
            }

        }

public static string Decodificar(string entrada)
        {
            TripleDESCryptoServiceProvider tripledescryptoserviceprovider = new TripleDESCryptoServiceProvider();
            MD5CryptoServiceProvider md5cryptoserviceprovider = new MD5CryptoServiceProvider();

            try
            {
                if (entrada.Trim() != "")
                {
                    string myKey = "1111111111111111";  //Aqui vc inclui uma chave qualquer para servir de base para cifrar, que deve ser a mesma no método Codificar
                    tripledescryptoserviceprovider.Key = md5cryptoserviceprovider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(myKey));
                    tripledescryptoserviceprovider.Mode = CipherMode.ECB;
                    ICryptoTransform desdencrypt = tripledescryptoserviceprovider.CreateDecryptor();
                    byte[] buff = Convert.FromBase64String(entrada);

                    return ASCIIEncoding.ASCII.GetString(desdencrypt.TransformFinalBlock(buff, 0, buff.Length));
                }
                else
                {
                    return "";
                }
            }
            catch (Exception exception)
            {
                throw exception;
            }
            finally
            {
                tripledescryptoserviceprovider = null;
                md5cryptoserviceprovider = null;
            }

        }

Já são três opções....
hehehe

[]'s

José Ferro


--

Juan Lopes

unread,
Jan 4, 2011, 8:51:07 AM1/4/11
to dotn...@googlegroups.com
Desculpe perguntar, mas qual o objetivo?

Digo pois dependendo do objetivo existem formas mais fáceis ou mais difíceis.

2011/1/4 Edinei Steffen <edinei...@gmail.com>
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com



--
Kind regards,
Juan Lopes 

http://juanlopes.net

Edinei Steffen

unread,
Jan 4, 2011, 10:28:45 AM1/4/11
to dotn...@googlegroups.com
OK Pessoal...

José, acho que vou ficar o a sua que me parece ser mais funcional e além do mais eu posso definir o chave para a criptografia...

Obrigado a todos que contribuiram...

Forte abraço
Edinei

2011/1/4 Juan Lopes <juanp...@gmail.com>
Reply all
Reply to author
Forward
0 new messages