„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie generiert man SHA256-Hashes mit OpenSSL und C++?

Wie generiert man SHA256-Hashes mit OpenSSL und C++?

Veröffentlicht am 08.11.2024
Durchsuche:694

How to Generate SHA256 Hashes with OpenSSL and C  ?

Erzeugen von SHA256-Hashes mit OpenSSL und C

Hashing ist eine kryptografische Technik, die verwendet wird, um einen eindeutigen Fingerabdruck oder Digest von Daten zu generieren. Im Fall von SHA256 (Secure Hash Algorithm 2, 256-Bit) ist dieser Digest eine 256-Bit-Hexadezimalzeichenfolge. SHA256 wird häufig verwendet, um die Datenintegrität zu überprüfen, digitale Signaturen zu verifizieren und Passwörter sicher zu speichern.

In diesem Artikel erfahren Sie, wie Sie SHA256-Hashes mithilfe der OpenSSL-Bibliothek und C-Code generieren.

OpenSSL-Header einschließen

Stellen Sie zunächst sicher, dass Ihrem C-Compiler die OpenSSL-Header zur Verfügung stehen. Normalerweise können Sie die folgende Include-Anweisung verwenden:

#include 

SHA256-Kontext erstellen

Als nächstes müssen wir einen SHA256-Kontext erstellen, um den Hashing-Prozess zu initialisieren. Wir können dies mit dem folgenden Code tun:

SHA256_CTX context;
SHA256_Init(&context);

Aktualisieren Sie den SHA256-Kontext mit Daten

Um einen Hash zu generieren, müssen wir die zu hashenden Daten in den SHA256-Kontext einspeisen. Wir können dies in Blöcken mit der Funktion SHA256_Update() tun:

SHA256_Update(&context, data, data_length);

Den Hash abschließen

Sobald alle Daten dem SHA256-Kontext zugeführt wurden, können wir den Hash mit der Funktion SHA256_Final() finalisieren:

unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_Final(hash, &context);

Der resultierende Hash wird nun im Hash-Array gespeichert.

In einen hexadezimalen String konvertieren

Zuletzt haben wir Sie müssen den binären Hash in eine für Menschen lesbare hexadezimale Zeichenfolge konvertieren:

char hex_hash[65];
for (int i = 0; i x", hash[i]);
}
hex_hash[64] = 0;

Beispielverwendung

Da wir nun unsere Funktionen eingerichtet haben, können wir sie nach Bedarf zum Generieren von SHA256-Hashes verwenden. Zum Beispiel:

// Generate a hash for a string
char hash_string[65];
SHA256_string("Hello, world!", hash_string);

// Generate a hash for a file
char hash_file[65];
SHA256_file("path/to/file", hash_file);

Dadurch wird ein SHA256-Hash für die angegebene Zeichenfolge oder Datei generiert und im entsprechenden Puffer gespeichert.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3