Olá pessoal, hoje eu vou falar um pouco sobre o componente chamado CriptHashes que está grátis no NuGet.org https://www.nuget.org/packages/CriptHashes/. Existem vários métodos dentro do pacote onde você pode utilizar sem qualquer tipo de problema e assim deixar mais seguro as informações dentro do seu sistema. Lembre-se que é muito importante desenvolver software de forma segura.

O exemplo que vou fazer mostra a diferença entrar os hashes disponíveis para utilização. Lembrando que, o hash não volta a forma original e como fazer para comparar? Basta sempre gerar o hash e comparar com que já existe anteriormente.

Ferramentas utilizadas

  • Visual Studio Microsoft (qualquer versão)
  • Linguagem C# (mas pode utilizar qualquer linguagem)
  • Tipo da aplicação, console aplication.

##Passo 1 - download

Fazer download do pacote disponível no endereço do NuGet.org https://www.nuget.org/packages/CriptHashes/.

Acesse o gerenciador de pacotes do Visual Studio e procure pelo pacote CriptHashes. Veja a figura 1.

Image

Figura 1 - Fazendo download do pacote

Depois de instalado, vamos utilizá-la dentro da própria Program.cs para escrever o código.

Passo 2 - código

Código 1 - Consumindo o pacote CriptHashes

using System;

namespace ConsoleAppConsomeCriptHashes
{
	class Program
	{
        static void Main(string[] args)
        {
            Console.WriteLine("#### Consuming CriptHashes!");

            CriptHashes.Hash hash = new CriptHashes.Hash();

            var hash512 = hash.GetHash("my name is Mauricio Junior", CriptHashes.Enum.HashType.SHA512);

            Console.WriteLine($"my name is Mauricio Junior 512 = {hash512}");

            var hash384 = hash.GetHash("my name is Mauricio Junior", CriptHashes.Enum.HashType.SHA384);

            Console.WriteLine($"my name is Mauricio Junior 384 {hash384}");

            var hash256 = hash.GetHash("my name is Mauricio Junior", CriptHashes.Enum.HashType.SHA256);

            Console.WriteLine($"my name is Mauricio Junior 256 = {hash256} ");

            var hash1 = hash.GetHash("my name is Mauricio Junior", CriptHashes.Enum.HashType.SHA1);

            Console.WriteLine($"my name is Mauricio Junior SHA1 = {hash1}");

            Console.Read();
        }
	}
}

O código 1 mostra a criação da instância CriptHashes.Hash hash = new CriptHases.Hash(); para depois acessar os métodos expostos com o GetHash.

Código 2 - Hash 512

CriptHashes.Hash hash = new CriptHashes.Hash();

var hash512 = hash.GetHash("my name is Mauricio Junior", CriptHashes.Enum.HashType.SHA512);

Console.WriteLine($"my name is Mauricio Junior 512 = {hash512}");

No código 2, chamei o método GetHash com a string "my name is Mauricio Junior" para o SHA512. O resultado foi um hash bem grande.

Então a minha ideia foi colocar a mesma string para todos os hashes disponíveis só para ver a diferença e veja na figura 2 o que resultou.

Image

Figura 2 - Resultado da mesma string

Note que na imagem cada hash veio diferente. Depende da sua aplicação, você pode usar todos ou o maior para sentir mais seguro. O maior de todos foi o 512 que, quase não coube na tela. Espero que tenha gostado e qualquer dúvida pode entrar em contato pelo site https://www.mauriciojunior.org.