Bagaimanakah anda boleh menjana cincang SHA256 menggunakan OpenSSL dan C ?

Patricia Arquette
Lepaskan: 2024-10-30 00:58:02
asal
846 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan