Maison > développement back-end > C++ > le corps du texte

Comment générer des hachages SHA256 en utilisant OpenSSL et C ?

Patricia Arquette
Libérer: 2024-10-30 00:58:02
original
839 Les gens l'ont consulté

How can you generate SHA256 hashes using OpenSSL and C  ?

Générer SHA256 avec OpenSSL et C

Dans cet article, nous explorerons comment générer des hachages SHA256 à l'aide de la bibliothèque OpenSSL et de C . SHA256 est une fonction de hachage cryptographique largement utilisée qui produit un résumé unique de 256 bits de données arbitraires.

Mise en œuvre

Pour commencer, nous devons nous assurer que le développement d'OpenSSL les bibliothèques et les en-têtes sont disponibles sur notre système. Après avoir inclus les en-têtes nécessaires, nous pouvons procéder à l'implémentation :

<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>
Copier après la connexion

Pour générer un hachage SHA256 à partir d'un fichier, nous utilisons la fonction suivante :

<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>
Copier après la connexion

Pour utiliser ces fonctions , transmettez simplement la chaîne d'entrée ou le chemin du fichier comme argument. Le hachage SHA256 généré sera renvoyé dans le tampon de sortie fourni.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal