Mit der folgenden statischen Klasse lässt sich aus einem String ein MD5, SHA1, SHA256, SHA384 und SHA512 Hash erzeugen.
using System; using System.Security.Cryptography; using System.Text; namespace Percula.Web.Tools { public static class Functions { /// <summary> /// Gibt einen MD5 Hash als String zurück /// </summary> /// <param name="text"/>string der Gehasht werden soll. /// <returns>Hash als string.</returns> public static string GetMD5Hash(string text) { //Prüfen ob Daten übergeben wurden. if ((text == null) || (text.Length == 0)) { return string.Empty; } //MD5 Hash aus dem String berechnen. Dazu muss der string in ein Byte[] //zerlegt werden. Danach muss das Resultat wieder zurück in ein string. MD5 md5 = new MD5CryptoServiceProvider(); byte[] textToHash = Encoding.Default.GetBytes(text); byte[] result = md5.ComputeHash(textToHash); string hashString = string.Empty; foreach (byte b in result) { hashString += String.Format("{0:x2}", b); } return hashString; } /// <summary> /// Gets the SHA1 hash. /// </summary> /// <param name="text"/>The text. /// <returns></returns> public static string GetSha1Hash(string text) { //Prüfen ob Daten übergeben wurden. if ((text == null) || (text.Length == 0)) { return string.Empty; } byte[] bytes = Encoding.Unicode.GetBytes(text); SHA1Managed hashstring = new SHA1Managed(); byte[] hash = hashstring.ComputeHash(bytes); string hashString = string.Empty; foreach (byte x in hash) { hashString += String.Format("{0:x2}", x); } return hashString; } /// <summary> /// Gets the SHA256 hash. /// </summary> /// <param name="text"/>The text. /// <returns></returns> public static string GetSha256Hash(string text) { //Prüfen ob Daten übergeben wurden. if ((text == null) || (text.Length == 0)) { return string.Empty; } byte[] bytes = Encoding.Unicode.GetBytes(text); SHA256Managed hashstring = new SHA256Managed(); byte[] hash = hashstring.ComputeHash(bytes); string hashString = string.Empty; foreach (byte x in hash) { hashString += String.Format("{0:x2}", x); } return hashString; } /// <summary> /// Gets the SHA384 hash. /// </summary> /// <param name="text"/>The text. /// <returns></returns> public static string GetSha384Hash(string text) { //Prüfen ob Daten übergeben wurden. if ((text == null) || (text.Length == 0)) { return string.Empty; } byte[] bytes = Encoding.Unicode.GetBytes(text); SHA384Managed hashstring = new SHA384Managed(); byte[] hash = hashstring.ComputeHash(bytes); string hashString = string.Empty; foreach (byte x in hash) { hashString += String.Format("{0:x2}", x); } return hashString; } /// <summary> /// Gets the SHA384 hash. /// </summary> /// <param name="text"/>The text. /// <returns></returns> public static string GetSha512Hash(string text) { //Prüfen ob Daten übergeben wurden. if ((text == null) || (text.Length == 0)) { return string.Empty; } byte[] bytes = Encoding.Unicode.GetBytes(text); SHA512Managed hashstring = new SHA512Managed(); byte[] hash = hashstring.ComputeHash(bytes); string hashString = string.Empty; foreach (byte x in hash) { hashString += String.Format("{0:x2}", x); } return hashString; } } }
Siehe auch: Create Online MD5 und SHA Hashes
Hey coole Anleitung! Danke
Pingback: Create Online MD5 und SHA Hashes – Cristiano's Blog