Advertisement
amv1991

SHA512 para arquivos

Mar 22nd, 2020
396
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.34 KB | None | 1 0
  1. using System;
  2. using System.IO;
  3. using System.Security.Cryptography;     //Para usar os métodos de hash
  4.  
  5. namespace ConsoleApp1
  6. {
  7.     public class ConsoleApp1
  8.     {
  9.         [STAThread]        //Necessário
  10.         public static void Main(string[] args)
  11.         {
  12.             /*
  13.              *          -O programa abaixo é uma implementação dos algoritmos de hash (para arquivos)
  14.              *              SHA256, SHA384 e SHA512;
  15.              *          -Esse tipo de algoritmo é geralmente utilizado para verificação a integridade de arquivos;
  16.              *          -Pra quem quiser analisar se o programa está funcionando corretamente, basta comparar
  17.              *              os hashes com os desse serviço online https://emn178.github.io/online-tools/index.html (na seção File Hash);
  18.              *          -Basta copiar o código, colar em um Console Application e compilar;
  19.              *          
  20.              *          Criado por: Andrew Vargas
  21.              *          Facebook: https://www.facebook.com/andrewvargas1991
  22.              *          PS: Pra quem tá com preguiça de copiar e compilar, hahaha, baixe no link
  23.              *              https://mega.nz/#!z14XkaRQ!W0H2Kdol9NFFiIkwLq1TSAGrmdoUppGUKAsfODHLixc
  24.              */
  25.  
  26.             Console.Write("Escolha um arquivo: ");
  27.             string caminho = Console.ReadLine();        //Lê o caminho do arquivo
  28.  
  29.             caminho = caminho.Replace("\"", "");    //Remove as aspas caso exeistam
  30.             Stream arquivo = File.Open(caminho, FileMode.Open);     //Abre o arquivo
  31.  
  32.             SHA256 sha256 = SHA256.Create();        //Cria uma instância para SHA256
  33.             byte[] Hash256Arquivo = sha256.ComputeHash(arquivo);       //Calcula o hash do arquivo
  34.             Console.WriteLine("\nSHA256:");
  35.             PrintByteArray(Hash256Arquivo);        //Chama o método de impressão do hash
  36.  
  37.             arquivo.Close();    //Fecha o arquivo
  38.  
  39.             Stream arquivo2 = File.Open(caminho, FileMode.Open);     //Abre o arquivo
  40.             SHA384 sha384 = SHA384.Create();        //Cria uma instância para SHA512
  41.             byte[] Hash384Arquivo = sha384.ComputeHash(arquivo2);       //Calcula o hash do arquivo
  42.             Console.WriteLine("\nSHA384:");
  43.             PrintByteArray(Hash384Arquivo);        //Chama o método de impressão do hash
  44.  
  45.             arquivo2.Close();
  46.  
  47.             Stream arquivo3 = File.Open(caminho, FileMode.Open);     //Abre o arquivo
  48.             SHA512 sha512 = SHA512.Create();        //Cria uma instância para SHA512
  49.             byte[] Hash512Arquivo = sha512.ComputeHash(arquivo3);       //Calcula o hash do arquivo
  50.             Console.WriteLine("\nSHA512:");
  51.             PrintByteArray(Hash512Arquivo);        //Chama o método de impressão do hash
  52.  
  53.             arquivo3.Close();
  54.  
  55.             Console.WriteLine("\nAperte uma tecla para sair...");
  56.             Console.ReadKey();
  57.         }
  58.         public static void PrintByteArray(byte[] array)     //Método de impressão do hash
  59.         {
  60.             int i;
  61.             for (i = 0; i < array.Length; i++)  //Percorre os bytes do vetor de hash
  62.             {
  63.                 Console.Write(string.Format("{0:X2}", array[i]));
  64.  
  65.                 if (i % 4 == 3)
  66.                     Console.Write("");
  67.             }
  68.             Console.WriteLine();
  69.         }
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement