Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah anda boleh menjana cincang SHA256 menggunakan OpenSSL dan C ?

Bagaimanakah anda boleh menjana cincang SHA256 menggunakan OpenSSL dan C ?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 00:58:02762semak imbas

How can you generate SHA256 hashes using OpenSSL and C  ?

Jana SHA256 dengan OpenSSL dan C

Dalam artikel ini, kami akan meneroka cara menjana cincang SHA256 menggunakan perpustakaan OpenSSL dan C . SHA256 ialah fungsi cincang kriptografi yang digunakan secara meluas yang menghasilkan ringkasan 256-bit data arbitrari yang unik.

Pelaksanaan

Untuk bermula, kita perlu memastikan pembangunan OpenSSL perpustakaan dan pengepala tersedia pada sistem kami. Selepas memasukkan pengepala yang diperlukan, kami boleh meneruskan pelaksanaan:

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

Untuk menjana cincang SHA256 daripada fail, kami menggunakan fungsi berikut:

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

Untuk menggunakan fungsi ini , hanya lulus rentetan input atau laluan fail sebagai hujah. Cincang SHA256 yang dijana akan dikembalikan dalam penimbal output yang disediakan.

Atas ialah kandungan terperinci Bagaimanakah anda boleh menjana cincang SHA256 menggunakan OpenSSL dan C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn