Hashen eines Strings mit SHA256 in C#

Muhammad Zeeshan 12 Oktober 2023
Hashen eines Strings mit SHA256 in C#

Im folgenden Artikel erfahren Sie, wie Sie einen String mit dem Algorithmus sha256 in der Programmiersprache C# hashen.

In der Kryptografie bezeichnet Hashing ein Verfahren, das eine binäre Zeichenfolge unbestimmter Länge auf eine kurze binäre Zeichenfolge definierter Länge abbildet. Diese kurze binäre Zeichenfolge wird als Hash bezeichnet.

Hash-Funktionen sind ein anderer Name für Hashing. Es ist üblich, Hash-Funktionen zu verwenden, um vertrauliche Informationen wie Passwörter und digitale Zertifikate vor unbefugtem Zugriff zu schützen.

Hashe einen String mit SHA256 in C#

Um besser zu erklären, wie man einen String mit sha256 hasht, kann das folgende Beispiel Sie anleiten.

Importieren Sie zunächst die folgenden Bibliotheken:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;

Zuerst erstellen wir eine Funktion namens HashWithSha256, die Benutzereingaben in Hash-Ausgaben umwandelt. Diese Funktion akzeptiert Benutzereingaben als Parameter.

static string HashWithSha256(string ActualData) {}

Um den SHA256-Hash zu erhalten, verwenden wir die Klasse SHA256. Es ist notwendig, zuerst ein SHA256-Hash-Objekt mit der .Create()-Methode zu erstellen.

using (SHA256 s = SHA256.Create()) {}

Verwenden Sie dann die Funktion Encoding.GetBytes(), um den bereitgestellten String in ein byte-Array umzuwandeln.

byte[] bytes = s.ComputeHash(Encoding.UTF8.GetBytes(ActualData));

Verwenden Sie den StringBuilder, um das byte-Array in einen string umzuwandeln.

StringBuilder b = new StringBuilder();
for (int i = 0; i < bytes.Length; i++) {
  b.Append(bytes[i].ToString("x2"));
}

Beginnen wir mit der Konstruktion der Zeichenfolge, die wir konvertieren möchten.

string s1 = "Muhammad Zeeshan";
Console.WriteLine("User Input: {0}", s1);

Zuletzt müssen Sie die Ausgabe der Eingabezeichenfolge in einer lokalen Variablen HashString speichern, nachdem Sie sie als Parameter für die Funktion HashWithSha256 bereitgestellt haben.

string HashString = HashWithSha256(s1);
Console.WriteLine("Hash Output: {0}", HashString);
Console.ReadLine();

Vollständiger Quellcode:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;

namespace HashStringByZeeshan {
  class Program {
    static void Main(string[] args) {
      string s1 = "Muhammad Zeeshan";
      Console.WriteLine("User Input: {0}", s1);
      string HashString = HashWithSha256(s1);
      Console.WriteLine("Hash Output: {0}", HashString);
      Console.ReadLine();
    }

    static string HashWithSha256(string ActualData) {
      using (SHA256 s = SHA256.Create()) {
        byte[] bytes = s.ComputeHash(Encoding.UTF8.GetBytes(ActualData));
        StringBuilder b = new StringBuilder();
        for (int i = 0; i < bytes.Length; i++) {
          b.Append(bytes[i].ToString("x2"));
        }
        return b.ToString();
      }
    }
  }
}

Ausgang:

User Input: Muhammad Zeeshan
Hash Output: b77387c5681141bfb72428c7ee23b67ce1bc08f976954368fa9cab070ffb837b
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn