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