Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Security.Cryptography; //Para usar os métodos de hash
- namespace ConsoleApp1
- {
- public class ConsoleApp1
- {
- [STAThread] //Necessário
- public static void Main(string[] args)
- {
- /*
- * -O programa abaixo é uma implementação dos algoritmos de hash (para arquivos)
- * SHA256, SHA384 e SHA512;
- * -Esse tipo de algoritmo é geralmente utilizado para verificação a integridade de arquivos;
- * -Pra quem quiser analisar se o programa está funcionando corretamente, basta comparar
- * os hashes com os desse serviço online https://emn178.github.io/online-tools/index.html (na seção File Hash);
- * -Basta copiar o código, colar em um Console Application e compilar;
- *
- * Criado por: Andrew Vargas
- * Facebook: https://www.facebook.com/andrewvargas1991
- * PS: Pra quem tá com preguiça de copiar e compilar, hahaha, baixe no link
- * https://mega.nz/#!z14XkaRQ!W0H2Kdol9NFFiIkwLq1TSAGrmdoUppGUKAsfODHLixc
- */
- Console.Write("Escolha um arquivo: ");
- string caminho = Console.ReadLine(); //Lê o caminho do arquivo
- caminho = caminho.Replace("\"", ""); //Remove as aspas caso exeistam
- Stream arquivo = File.Open(caminho, FileMode.Open); //Abre o arquivo
- SHA256 sha256 = SHA256.Create(); //Cria uma instância para SHA256
- byte[] Hash256Arquivo = sha256.ComputeHash(arquivo); //Calcula o hash do arquivo
- Console.WriteLine("\nSHA256:");
- PrintByteArray(Hash256Arquivo); //Chama o método de impressão do hash
- arquivo.Close(); //Fecha o arquivo
- Stream arquivo2 = File.Open(caminho, FileMode.Open); //Abre o arquivo
- SHA384 sha384 = SHA384.Create(); //Cria uma instância para SHA512
- byte[] Hash384Arquivo = sha384.ComputeHash(arquivo2); //Calcula o hash do arquivo
- Console.WriteLine("\nSHA384:");
- PrintByteArray(Hash384Arquivo); //Chama o método de impressão do hash
- arquivo2.Close();
- Stream arquivo3 = File.Open(caminho, FileMode.Open); //Abre o arquivo
- SHA512 sha512 = SHA512.Create(); //Cria uma instância para SHA512
- byte[] Hash512Arquivo = sha512.ComputeHash(arquivo3); //Calcula o hash do arquivo
- Console.WriteLine("\nSHA512:");
- PrintByteArray(Hash512Arquivo); //Chama o método de impressão do hash
- arquivo3.Close();
- Console.WriteLine("\nAperte uma tecla para sair...");
- Console.ReadKey();
- }
- public static void PrintByteArray(byte[] array) //Método de impressão do hash
- {
- int i;
- for (i = 0; i < array.Length; i++) //Percorre os bytes do vetor de hash
- {
- Console.Write(string.Format("{0:X2}", array[i]));
- if (i % 4 == 3)
- Console.Write("");
- }
- Console.WriteLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement