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