"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment générer des hachages SHA256 avec OpenSSL et C++ ?

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

Publié le 2024-11-08
Parcourir:740

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 :

#include 

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 :

SHA256_CTX context;
SHA256_Init(&context);

Mettre à jour le contexte SHA256 avec des données

Pour générer un hachage, nous devons introduire les données à hacher dans le contexte SHA256. Nous pouvons le faire par morceaux en utilisant la fonction SHA256_Update() :

SHA256_Update(&context, data, data_length);

Finaliser le hachage

Une fois que toutes les données ont été introduites dans le contexte SHA256, nous pouvons finaliser le hachage à l'aide de la fonction SHA256_Final() :

unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_Final(hash, &context);

Le hachage résultant est maintenant stocké dans le tableau de hachage.

Convertir en chaîne hexadécimale

Enfin, nous besoin de convertir le hachage binaire en une chaîne hexadécimale lisible par l'homme :

char hex_hash[65];
for (int i = 0; i x", hash[i]);
}
hex_hash[64] = 0;

Exemple d'utilisation

Maintenant que nos fonctions sont en place, nous pouvons les utiliser pour générer des hachages SHA256 selon nos besoins. Par exemple :

// 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);

Cela générera un hachage SHA256 pour la chaîne ou le fichier donné et le stockera dans le tampon correspondant.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3