Heim  >  Artikel  >  Backend-Entwicklung  >  Wie können Sie SHA256-Hashes mit OpenSSL und C generieren?

Wie können Sie SHA256-Hashes mit OpenSSL und C generieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 00:58:02762Durchsuche

How can you generate SHA256 hashes using OpenSSL and C  ?

SHA256 mit OpenSSL und C generieren

In diesem Artikel erfahren Sie, wie Sie SHA256-Hashes mithilfe der OpenSSL-Bibliothek und C generieren. SHA256 ist eine weit verbreitete kryptografische Hash-Funktion, die einen einzigartigen 256-Bit-Digest beliebiger Daten erzeugt.

Implementierung

Zunächst müssen wir sicherstellen, dass die OpenSSL-Entwicklung erfolgt Bibliotheken und Header sind auf unserem System verfügbar. Nachdem wir die notwendigen Header eingefügt haben, können wir mit der Implementierung fortfahren:

<code class="cpp">#include <openssl/sha.h>

// Function to generate SHA256 hash of a string
void sha256_string(char *string, char outputBuffer[65]) {
    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256_CTX sha256;
    SHA256_Init(&sha256);
    SHA256_Update(&sha256, string, strlen(string));
    SHA256_Final(hash, &sha256);
    int i = 0;
    for (i = 0; i < SHA256_DIGEST_LENGTH; i++) {
        sprintf(outputBuffer + (i * 2), "%02x", hash[i]);
    }
    outputBuffer[64] = 0;
}</code>

Um einen SHA256-Hash aus einer Datei zu generieren, verwenden wir die folgende Funktion:

<code class="cpp">int sha256_file(char *path, char outputBuffer[65]) {
    FILE *file = fopen(path, "rb");
    if (!file) return -534;

    unsigned char hash[SHA256_DIGEST_LENGTH];
    SHA256_CTX sha256;
    SHA256_Init(&sha256);
    const int bufSize = 32768;
    unsigned char *buffer = malloc(bufSize);
    int bytesRead = 0;
    if (!buffer) return ENOMEM;
    while ((bytesRead = fread(buffer, 1, bufSize, file))) {
        SHA256_Update(&sha256, buffer, bytesRead);
    }
    SHA256_Final(hash, &sha256);

    sha256_hash_string(hash, outputBuffer);
    fclose(file);
    free(buffer);
    return 0;
}</code>

Um diese Funktionen zu verwenden , übergeben Sie einfach die Eingabezeichenfolge oder den Dateipfad als Argument. Der generierte SHA256-Hash wird im bereitgestellten Ausgabepuffer zurückgegeben.

Das obige ist der detaillierte Inhalt vonWie können Sie SHA256-Hashes mit OpenSSL und C generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn