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