Sha Hash für Strings mit C#

Vor einiger Zeit hab ich bereits gezeigt wie man SHA Hasehs eines Strings mit Java generiert. Nun möchte ich aber der .Net Gemeinde nichts vorenthalten, und möchte euch nun eine Möglichkeit ziegen wie man das selbe Problem mit C# löst.

Seit dem letzten Artikel, hat sich nicht allzu viel geändert. MD5 und SHA1 gelten weiterhin als nicht mehr sicher. Aus diesem Grund möchte ich mich nun auch auf eine Implementierung der SHA-256 Variante stürzen.

Die nun folgende Funktion generiert aus dem Text "Create my hash" einen SHA-256 Hash Wert. Dieser wird anschließend auf der Konsole ausgegeben.

public static void GetHashForString()
{
    const string value = "Create my hash";
 
    var sha = new SHA256CryptoServiceProvider();
 
    string result = null;
 
    byte[] arrayData = Encoding.ASCII.GetBytes(value);
    byte[] arrayResult = sha.ComputeHash(arrayData);
 
    foreach (byte t in arrayResult)
    {
        var temp = Convert.ToString(t, 16);
        if (temp.Length == 1)
            temp = "0" + temp;
 
        result += temp;
    }
 
    Console.Out.WriteLine(result);
}

Der Hashwert für diesen Text sollte, genau wie bei der Java Variante,
868091a71d8126681e45c6aa7816e390f5607f4b97d65cf69e3fc7b07436b8fe
sein. Wenn das nicht der Fall ist, ist wohl etwas schief gelaufen...

Auch in C# haben wir die Möglichkeit andere SHA Implementierungen zu benutzen. Die Art des Algorithmus wird durch den CryptoServiceProvider bestimmt.
Als Alternativen zum SHA-256 haben wir noch

  • SHA1CryptoServiceProvider

  • SHA384CryptoServiceProvider

  • SHA512CryptoServiceProvider

Wie schon gesagt, gilt die SHA1 Variante nicht mehr als sicher und sollte nicht mehr genutzt werden!

Um nun einen der oben genannten Alternativen zu verwenden muss nur der CryptoServiceProvider in der Zeile 5:

var sha = new SHA256CryptoServiceProvider();

geändert werden.


In this article



Most Recent


More posts

Kurze amzn.to Links erstellen
Kurze amzn.to Links erstellen

Wie ich vor einiger Zeit gesehen habe, hat Amazon einen eigenen Link Shortener Service. OK. Das ist aber nur zur Hälfte wahr...

Eine Datei mit C# lesen
Eine Datei mit C# lesen

Mit der Fähigkeit Dateien mit seiner Anwendung zu lesen, ermöglicht das einem ganz neue Möglichkeiten. Man kann entweder Ausgaben von anderen...

Entferne überflüssige Whitespaces mit C#
Entferne überflüssige Whitespaces mit C#

Heute wurde ich gefragt, ob und wie es möglich sein, mit Hilfe von C# alle doppelten bzw. überflüssigen Whitespaces in einem Text zu entfernen. Mit...

Die Anzahl eines Zeichens in einem String ermitteln
Die Anzahl eines Zeichens in einem String ermitteln

Heute wurde ich mal wieder mit einem kleinen Problemchen konfrontiert. Und zwar musst ich die Anzahl eines bestimmten Zeichens innerhalb eines...