Desenvolvimento - ASP. NET
Encriptando senhas com ASP.NET
Neste artigo irei mostrar como podemos criptografar dados com o ASP.NET.
por Rodrigo Kono
Já vi muitas pessoas fazendo criptografias de dados em ASP.NET utilizando a namespace System.Security.Cryptography e assim por diante criando uma instância do algoritmo de criptografia para depois poder realizar a operação. Sem contar que teremos que informar os parâmetros do método ComputeHash.
Funciona perfeitamente.
Bem, você deve me perguntar: qual é o problema então?
Nenhum, desde que saibamos que existe uma forma mais simples de poder realizar a criptografia de dados com asp.net.
Lembrando que a forma mais simples não é a menos segura. Estamos utilizando as classes do .NET FrameWork.
Neste artigo irei mostrar como podemos criptografar dados com o ASP.NET.
Só para que possamos recordar um pouco, vejamos abaixo um dos dois algoritmos mais precisos para encriptação:
SHA1 (Secure Hash Algorithm - Algoritmo de Resumo Seguro).
Este algoritmo recebe como entrada um documento qualquer sob a forma digital com um tamanho de até 2 elevado a 64 bits (18.446.744.073.709.551.616 bits) ou 2.305.843.009.213.693.952 "Bytes" ou caracteres, e gera como saída um resumo de 160 bits ou 20 Bytes. Ele é um pouco mais lento que o MD5, mas em compensação mais difícil de ser quebrado.
MD5 (Message Digest)
Ele produz uma saída de 128 bits ou 16 Bytes. Já se tem notícia de uma vulnerabilidade mas por enquanto ele não foi ainda quebrado. Ele é mais rápido que o SHA-1.
Vamos à prática!
Crie um WebForm e adicione nele um TextBox (txtSenha), um Button(btnCrip) e dois Labels(lblSHA1, lblMD5).
Feito isso, dê um duplo clique no botão(btnCrip) para utilizarmos a ação do evento Click. Ou seja, o nosso texto será codificado ao clicar o botão. Mas antes informe a namespace que iremos utilizar:
Imports System.Web.Security
Dentro da Subrotina criada, faça com que o label específico receba a string codificada. Iremos usar da classe FormsAuthentication a função HashPasswordForStoringInConfigFile. Essa função codifica-se o texto informado através do tipo do algoritmo informado (SHA1 ou MD5).
HashPasswordForStoringInConfigFile(password, passwordFormat) |
Password: o dado a ser codificado |
passwordFormat: o algotítmo a utilizar (SHA1 ou MD5) |
Segue o código abaixo:
Private Sub btoCrip_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btoCrip.Click lblSHA1.Text = "SHA1: " & FormsAuthentication.HashPasswordForStoringInConfigFile(txtSenha.Text, "SHA1") lblMD5.Text = "MD5: " & FormsAuthentication.HashPasswordForStoringInConfigFile(txtSenha.Text, "MD5") End Sub
Note que informei qual é o algoritmo a ser usado dentro das "".
Finalizado, compile e veja o resultado no browser.
Como viram, de uma forma simples, podemos encriptar nossos dados na web utilizando a classe FormsAuthentication. Mas lembrando que esse tipo de criptografia é válida apenas para dados trabalhados com ASP.NET.
Espero que seja útil a você.
Abraços.
Rodrigo Kono