Desenvolvimento - C#

Método MD5

Caro leitor, gostaria de mostrar como gerar um método responsável pela criptografia de dados.

por Mauricio Junior



Caro leitor, gostaria de mostrar como gerar um método responsável pela criptografia de dados. Neste primeiro momento será falado apenas de um procedimento e, em outros artigos falarei de outros.

Requisito para o artigo:
Linguagem C#.NET
Ferramenta: Visual Studio .NET 2008
Plataforma: Pode ser usado em qualquer plataforma

Para quem não sabe o que é MD5, em simples palavras é um método de criptografia que serve para misturar os dados de maneira precisa.

Tecnicamente é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security e está embutido dentro do framework .NET.

Importes necessários
É necessário importar algumas classes dentro do arquivo .cs.

using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
Code 1.1

No caso de não conseguir importar as classes, favor adicionar como referência em seu projeto, clicando com o botão direito da pasta references. Procure por System.Security.

Depois de importar as classes, vou criar um método que utiliza o MD5. (Code 1.2)

private string GetMD5(string strPlain)
{
UnicodeEncoding UE = new UnicodeEncoding();
byte[] HashValue, MessageBytes = UE.GetBytes(strPlain);
MD5 md5 = new MD5CryptoServiceProvider();
string strHex = "";


HashValue = md5.ComputeHash(MessageBytes);
foreach (byte b in HashValue)
{
strHex += String.Format("{0:x2}", b);
}
return strHex;
}
Code 1.2

A assinatura do método é a seguinte: recebe uma string como parâmetro de entrada e retorna uma string criptografada. Note que os dados são transformados em array de bytes e depois faz um for com o valor da hash. No final, retorna dados de forma simples.

A melhor maneira é gravar no banco de dados a senha criptografada. Quando o usuário for logar, passa a chave do usuário e busca a senha. Para finalizar, compara a string que veio do banco de dados com a que o usuário digitou na tela.

Lógico que pode ser usado vários dados para criptografia, não só a senha, mas a senha com o nome do usuário; data de nascimento ou dados pessoais. Com isso, toda vez é necessário criptografar e comparar. Por exemplo:

string senha = GetMD5("|#*" + txtNome.Text.Trim() + txtSenha.Text.Trim());
Code 1.3

Espero que tenha gostado e qualquer dúvida pode entrar em contato pelo site, obrigado.
Fonte: www.aspneti.com
Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org