Como criar uma chave simples usando MD5 e SHA1

watch_later 11 de mar de 2014
Introdução

Após postar o antigo post de criptografia  link aqui , percebi que muita gente acessava ele , pensei em criar um série de postagens sobre o assunto , e começaremos com uma mais simples do nosso artigo antigo

A seguir irei ensinar a criar um método de criptografia usado para criar um hash usando MD5 ou SHA1 e, em seguida, devolvê-lo criptografado. 

Existem dois tipos de criptografia: 
  1. Uma forma de criptografia Pegue os dados de entrada e criptografe-os, e não há uma maneira de descriptografar para obter os dados de originais. Um bom exemplo para uma criptografia simples é usar MD5. Outro bom exemplo para uma criptografia simples é SQL Server Membership, que armazena senhas criptografadas e não há nenhum modo para obter a senha original de volta. Tudo o que podemos fazer é comparar a senha digitada e os dados hash.
  2.  Dois sentidos Criptografia : Tome dados de entrada e criptografe-os, e em outro lado tomamos os dados criptografados e comparamos usando o mesmo algoritmo. 

Neste artigo, vou falar sobre MD5 e SHA1 e apresentar um código de exemplo. namespace que irei usar é: System.Security.Cryptography.

O código

Você pode usar o método GetMD5HashData ou GetSHA1HashData diretamente para inserir qualquer string. Estou usando a classe MD5 e SHA1 a classe. 

O código de exemplo contém quatro métodos:


  1. GetMD5HashData: recebe uma string e cria um hash usando a classe MD5. 
  2. GetSHA1HashData: recebe uma string e cria um hash usando a classe SHA1. 
  3. ValidateMD5HashData: compara o texto de entrada usando MD5 pela o armazenado. 
  4. ValidateSHA1HashData: compara o texto de entrada usando SHA1 pela o armazenado.


Hash usando a classe MD5


private string GetMD5HashData(string data)
{
    var md5 = MD5.Create();
    
    byte[] hashData = md5.ComputeHash(Encoding.Default.GetBytes(data));
    
    var returnValue = new StringBuilder();

    for (int i = 0; i < hashData.Length; i++)
    {
        returnValue.Append(hashData[i].ToString());
    }

    return returnValue.ToString();
}


Hash usando a classe SHA1


private string GetSHA1HashData(string data)
{
    SHA1 sha1 = SHA1.Create();

    byte[] hashData = sha1.ComputeHash(Encoding.Default.GetBytes(data));

    StringBuilder returnValue = new StringBuilder();

    for (int i = 0; i < hashData.Length; i++)
    {
        returnValue.Append(hashData[i].ToString());
    }

    return returnValue.ToString();
}

Metódos para validar


private bool ValidateMD5HashData(string inputData, string storedHashData)
{
    string getHashInputData = GetMD5HashData(inputData);

    if (string.Compare(getHashInputData, storedHashData) == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

private bool ValidateSHA1HashData(string inputData, string storedHashData)
{
    string getHashInputData = GetSHA1HashData(inputData);

    if (string.Compare(getHashInputData, storedHashData) == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

Como essa classe simples você pode criar um hash de sua string

Obrigado por lerem e até a próxima

Mais Links de Criptografia :

Criptograr Senha usando C#
Criar chave simples usando MD5 e SHA1