Obtener el valor SHA1 de una cadena en C#

Cómo obtener el valor de la función Hash SHA1 de una cadena en C#


Obtener el valor SHA1 de una cadena en C#

El algoritmo SHA1 , del mismo modo que el algoritmo MD5 , otiene una cadena única utilizando una función de Hashing sobre una cadena de entrada.

Para conseguir una cadena SHA1 en C # se puede utilizar la siguiente clase estática:

using System;
using System.Security.Cryptography;
using System.Text;

namespace CiberGestion.Libraries.LibCryptography.Hashing
{
	/// 
	///		Clase para codificación SHA1
	/// 
	public static class SHA1Helper
	{
		/// 
		///		Calcula una cadena SHA1 a partir de una cadena de entrada
		/// 
		public static string Compute(string strSource)
		{ byte [] arrBytTarget;
			SHA1 objSHA1 = new SHA1CryptoServiceProvider();
			
				// Codifica la cadena
					arrBytTarget = objSHA1.ComputeHash(ASCIIEncoding.Default.GetBytes(strSource));
				// Convierte los bytes codificados en una cadena legible
					return BitConverter.ToString(arrBytTarget).Replace("-", "");
		}
	}
}

Para obtener el resultado SHA1 para una cadena simplemente debemos realizar una llamada a la función:

	string strHashValue = SHA1Helper.Compute("Hello World");

Los lectores fieles y observadores, se habrán dado cuenta que la forma de trabajar es prácticamente la misma que en el artículo que explicaba como obtener el valor MD5 de una cadena , en realidad lo único que cambia es el proveedor criptográfico utilizado, en el caso de SHA1 utilizamos la clase SHA1CryptoServiceProvider , mientras que para el caso de MD5 utilizamos la clase MD5CryptoServiceProvider .

Esta es una de las ventajas de programar a partir de interfaces ,.NET utiliza esta técnica en prácticamente toda la librería de criptografía tanto a la hora de obtener funciones Hash como a la hora de encriptar o desencriptar datos.

Páginas relacionadas