Heim > Artikel > Backend-Entwicklung > Wie generiert man SHA256-Hashes mit OpenSSL und C?
SHA256-Hashes mit OpenSSL und C generieren
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 einbeziehen
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:
<code class="cpp">#include <openssl/sha.h></code>
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:
<code class="cpp">SHA256_CTX context; SHA256_Init(&context);</code>
Aktualisieren Sie den SHA256-Kontext mit Daten
Um einen Hash zu generieren, müssen wir die zu hashenden Daten eingeben in den SHA256-Kontext. Wir können dies in Blöcken mit der Funktion SHA256_Update() tun:
<code class="cpp">SHA256_Update(&context, data, data_length);</code>
Finalisieren Sie den Hash
Sobald alle Daten dem SHA256-Kontext zugeführt wurden, können wir kann den Hash mit der Funktion SHA256_Final() finalisieren:
<code class="cpp">unsigned char hash[SHA256_DIGEST_LENGTH]; SHA256_Final(hash, &context);</code>
Der resultierende Hash wird jetzt im Hash-Array gespeichert.
In einen Hexadezimal-String konvertieren
Zuletzt müssen wir den binären Hash in eine für Menschen lesbare Hexadezimalzeichenfolge umwandeln:
<code class="cpp">char hex_hash[65]; for (int i = 0; i < SHA256_DIGEST_LENGTH; i++) { sprintf(hex_hash + (i * 2), "%02x", hash[i]); } hex_hash[64] = 0;</code>
Beispielverwendung
Jetzt haben wir unsere Funktionen Vor Ort können wir sie verwenden, um bei Bedarf SHA256-Hashes zu generieren. Zum Beispiel:
<code class="cpp">// 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);</code>
Dadurch wird ein SHA256-Hash für die angegebene Zeichenfolge oder Datei generiert und im entsprechenden Puffer gespeichert.
Das obige ist der detaillierte Inhalt vonWie generiert man SHA256-Hashes mit OpenSSL und C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!