![]() |
Neste artigo vou mostrar como calcular o Hash de arquivos usando a linguagem C#. |
Se
você salvar o código de hash de um arquivo, poderá dizer se alguém modificou
o arquivo calculando um novo código de hash e verificando se ele corresponde
ao valor que você salvou originalmente.
Neste artigo vamos usar dois algoritmos de hashing diferentes: MD5 e
SHA256. Ambos são fornecidos pelo namespace
System.Security.Cryptography.
Vamos usar a classe abstrata SHA256 que calcula o hash SHA256 para os dados de entrada. O tamanho do hash SHA256 é de 256 bits.
O
método ComputeHash vai calcular o hash e retornar um fluxo de bytes.
Como não podemos exibir um fluxo de bytes diretamente para o usuário, vamos
usar um método para converter os bytes em uma string.
Já a classe MD5
representa a classe base abstrata da qual todas as implementações do
algoritmo de hash MD5 herdam. O tamanho do hash MD5 é de 128 bits.
O método ComputeHash da classe MD5 vai calcular o hash e retornar uma
matriz de 16 bytes, mas, algumas implementações de MD5 produzem um hash de
32 caracteres, em formato hexadecimal.
Para poder interoperar com tais implementações, vamos formatar o valor de retorno de ComputeHash como um valor hexadecimal.
A seguir vou mostrar um forma bem simples de implementar isso.
Recursos Usados
Criando o projeto Windows Forms
Abra o VS 2017 Community e crie um novo projeto (File-> New Project) usando a linguagem C# e o template Windows Forms App (.NET Framework).
Informe um nome a seu gosto. Eu vou usar o nome CSharp_ArqHash;
No formulário Form1 do projeto inclua os seguintes controles a partir da ToolBox:
Disponha os controles conforme o leiaute da figura abaixo:
![]() |
A seguir inclua no formulário os seguintes namespaces:
using System;
using System.IO;
using System.Security.Cryptography;
using System.Windows.Forms;
No evento Load do formulário inclua o código que carrega o caminho e
nome do arquivo executável da aplicação:
No botão para localizar o arquivo inclua no evento Click o código abaixo:
O código apenas atribui o nome do arquivo selecionado à caixa de texto txtArquivo.
Agora no evento Click do botão Calcular Hash define o código que vai calcular o hash md5 e sha256:
Estamos usando os métodos GetHashMD5() e GetHashSha256() para calcular o hash e convertendo o resultado de bytes para string.
1- Método GetHashMD5()
2- Método GetHashSha256()
A seguir o código do método BytesToString() para converter o resultado para string:
Executando o projeto e iremos obter:
Pegue
o projeto completo aqui :
CSharp_ArqHash.zip
"Como está escrito : Não há um justo, nem um sequer."
Romanos 3:10
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
VB .NET - O Calculando o CheckSum para um arquivo - Macoratti
C# - Login com SQL Server Compact e Hash com SHA256 - Macoratti
Mini-Curso : Criptografia na plataforma .NET - Aula 1 - Macoratti