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

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

Patricia Arquette
Libérer: 2024-10-27 01:19:30
original
584 Les gens l'ont consulté

How to Generate SHA256 Hashes with OpenSSL and 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>
Copier après la connexion

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

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

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

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

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

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!