MD5 Hash erzeugen

  • Kurzversion
using System.Security.Cryptography;

// MD5 Hashsumme zu "Teststring1" erstellen
string sStringtoHash = "Teststring1";
string sOutPut = Convert.ToBase64String(new MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(sStringtoHash)));
  • Komplexbeispiel
using System.IO;
using System.Security.Cryptography;

private void Form1_Load(object sender, EventArgs e)
{
    // MD5 Hash eines Strings erstellen
    string sHash1 = MD5String("Hello World!");
    // MD5 Hash einer Datei erstellen
    string sHash2 = MD5File("c:\\Testtext.txt");
}

// Funktion zum erzeugen eines MD5 Hashes aus einem String
private string MD5String(string sInput)
{
    // String in Byte-Array wandeln und hashen und wieder in String konvertieren
    return ByteArrayToHexString(MD5Hash(Encoding.Default.GetBytes(sInput)));
}

// Funktion zum erzeugen eines MD5 Hashes aus einer Datei
private string MD5File(string sFileName)
{
    string sHash = "";

    // Filestream öffnen
    FileStream fsInput = new FileStream(sFileName, FileMode.Open, FileAccess.Read);
    // Leseobjekt erzeugen
    BinaryReader br = new BinaryReader(fsInput);

    // alle Bytes aus der Datei (Stream) lesen, hashen und wieder in String konvertieren
    sHash = ByteArrayToHexString(MD5Hash(br.ReadBytes((int)fsInput.Length)));

    fsInput.Close();
    fsInput.Dispose();

    return sHash;
}

// allg. MD5 Hash Funktion
private byte[] MD5Hash(byte[] byaInput)
{
    // MD5 Objekt erzeugen und Hash aus Byte-Array berechnen
    return MD5.Create().ComputeHash(byaInput);
}

// Konvertierungsfunktion um ein Byte-Array in einen String zu wandeln
private string ByteArrayToHexString(byte[] byaInput)
{
    string sRetStr = "";

    // schrittweise Byte-.Array durchlaufen und Inhalt in einen String konvertieren
    for (int i = 0; i < byaInput.Length; i++)
    {
        sRetStr += byaInput[i].ToString("x2");
    }

    return sRetStr;
}