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
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