Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Security.Cryptography; //Para usar as funções Hash
- using System.Text;
- namespace ConsoleApp1
- {
- class Program
- {
- /*
- * -O programa abaixo é uma implementação dos algoritmos de hash (para string)
- * SHA1, SHA256, SHA384 E SHA512;
- * -Esse tipo de algoritmo é geralmente utilizado para verificação de senhas;
- * -Pra quem quiser analisar se o programa está funcionando corretamente, basta comparar
- * os hashes com os desse serviço online https://convertstring.com/pt_PT;
- * -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/#!2tBjxAYB!6z0ue-WQkWWQ5jp1nrHsMP_K53T3m5ooqDwlHu7Zdzo
- */
- static void Main(string[] args)
- {
- Console.Write("Digite alguma coisa: ");
- string palavra = Console.ReadLine(); //Lê a string a ser calculado o hash
- string sha1 = SHA.GerarSHA1(palavra); //Chama o método hash SHA1
- string sha256 = SHA.GerarSHA256(palavra); //Chama o método hash SHA256
- string sha384 = SHA.GerarSHA384(palavra); //Chama o método hash SHA384
- string sha512 = SHA.GerarSHA512(palavra); //Chama o método hash SHA512
- Console.WriteLine("\nSHA1 de {0}:\n{1}\n", palavra, sha1); //Imprime SHA1
- Console.WriteLine("\nSHA256 de {0}:\n{1}\n", palavra, sha256); //Imprime SHA256
- Console.WriteLine("\nSHA384 de {0}:\n{1}\n", palavra, sha384); //Imprime SHA384
- Console.WriteLine("SHA512 de {0}:\n{1}", palavra, sha512); //Imprime SHA512
- Console.WriteLine("\nAperte uma tecla para sair...");
- Console.ReadKey();
- }
- public static class SHA //Cria uma classe chamada SHA
- {
- //Método para gerar hash SHA1 tendo retorno e parâmetro do tipo string
- public static string GerarSHA1(string String_de_Entrada)
- {
- SHA1 sha1 = SHA1Managed.Create(); //Cria uma instância para SHA1
- byte[] bytes = Encoding.UTF8.GetBytes(String_de_Entrada); //Converte a string para bytes
- byte[] hash = sha1.ComputeHash(bytes); //Calcula o hash e armazena em um vetor de bytes
- return GetStringFromHash(hash); //Retorna chamando o método de conversão de vetor de bytes para string
- }
- //Método para gerar hash SHA256 tendo retorno e parâmetro do tipo string
- public static string GerarSHA256(string String_de_Entrada)
- {
- SHA256 sha256 = SHA256Managed.Create(); //Cria uma instância para SHA256
- byte[] bytes = Encoding.UTF8.GetBytes(String_de_Entrada); //Converte a string para bytes
- byte[] hash = sha256.ComputeHash(bytes); //Calcula o hash e armazena em um vetor de bytes
- return GetStringFromHash(hash); //Retorna chamando o método de conversão de vetor de bytes para string
- }
- //Método para gerar hash SHA384 tendo retorno e parâmetro do tipo string
- public static string GerarSHA384(string String_de_Entrada)
- {
- SHA384 sha384 = SHA384Managed.Create(); //Cria uma instância para SHA384
- byte[] bytes = Encoding.UTF8.GetBytes(String_de_Entrada); //Converte a string para bytes
- byte[] hash = sha384.ComputeHash(bytes); //Calcula o hash e armazena em um vetor de bytes
- return GetStringFromHash(hash); //Retorna chamando o método de conversão de vetor de bytes para string
- }
- //Método para gerar hash SHA512 tendo retorno e parâmetro do tipo string
- public static string GerarSHA512(string String_de_Entrada)
- {
- SHA512 sha512 = SHA512Managed.Create(); //Cria uma instância para SHA512
- byte[] bytes = Encoding.UTF8.GetBytes(String_de_Entrada); //Converte a string para bytes
- byte[] hash = sha512.ComputeHash(bytes); //Calcula o hash e armazena em um vetor de bytes
- return GetStringFromHash(hash); //Retorna chamando o método de conversão de vetor de bytes para string
- }
- //Converte os vetores de bytes das funções de hash para string
- private static string GetStringFromHash(byte[] hash)
- {
- StringBuilder result = new StringBuilder(); //Cria uma instância para StringBuilder
- for (int i = 0; i < hash.Length; i++) //Percorre o vetor de bytes
- {
- result.Append(hash[i].ToString("X2")); //Converte os bytes para char
- }
- return result.ToString(); //Retorna o hash em forma de string
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement