Maison >développement back-end >C++ >Comment générer des hachages SHA256 avec OpenSSL et C ?
Génération de hachages SHA256 avec OpenSSL et C
Le hachage est une technique cryptographique utilisée pour générer une empreinte digitale unique, ou un résumé, de données. Dans le cas de SHA256 (Secure Hash Algorithm 2, 256 bits), ce résumé est une chaîne hexadécimale de 256 bits. SHA256 est couramment utilisé pour vérifier l'intégrité des données, vérifier les signatures numériques et stocker les mots de passe en toute sécurité.
Dans cet article, nous expliquerons comment générer des hachages SHA256 à l'aide de la bibliothèque OpenSSL et du code C.
Inclure les en-têtes OpenSSL
Pour commencer, assurez-vous que les en-têtes OpenSSL sont disponibles pour votre compilateur C. En règle générale, vous pouvez utiliser l'instruction include suivante :
<code class="cpp">#include <openssl/sha.h></code>
Créer le contexte SHA256
Ensuite, nous devons créer un contexte SHA256 pour initialiser le processus de hachage. Nous pouvons le faire avec le code suivant :
<code class="cpp">SHA256_CTX context; SHA256_Init(&context);</code>
Mettre à jour le contexte SHA256 avec les données
Pour générer un hachage, nous devons alimenter les données à hacher dans le contexte SHA256. Nous pouvons le faire par morceaux en utilisant la fonction SHA256_Update() :
<code class="cpp">SHA256_Update(&context, data, data_length);</code>
Finaliser le hachage
Une fois que toutes les données ont été introduites dans le contexte SHA256, nous peut finaliser le hachage à l'aide de la fonction SHA256_Final() :
<code class="cpp">unsigned char hash[SHA256_DIGEST_LENGTH]; SHA256_Final(hash, &context);</code>
Le hachage résultant est maintenant stocké dans le tableau de hachage.
Convertir en chaîne hexadécimale
Enfin, nous devons convertir le hachage binaire en une chaîne hexadécimale lisible par l'homme :
<code class="cpp">char hex_hash[65]; for (int i = 0; i < SHA256_DIGEST_LENGTH; i++) { sprintf(hex_hash + (i * 2), "%02x", hash[i]); } hex_hash[64] = 0;</code>
Exemple d'utilisation
Maintenant que nous avons nos fonctions en place, nous pouvons les utiliser pour générer des hachages SHA256 selon nos besoins. Par exemple :
<code class="cpp">// Generate a hash for a string char hash_string[65]; SHA256_string("Hello, world!", hash_string); // Generate a hash for a file char hash_file[65]; SHA256_file("path/to/file", hash_file);</code>
Cela générera un hachage SHA256 pour la chaîne ou le fichier donné et le stockera dans le tampon correspondant.
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!