Maison >développement back-end >C++ >Comment calculer le hachage MD5 d'un fichier en C en utilisant OpenSSL ?

Comment calculer le hachage MD5 d'un fichier en C en utilisant OpenSSL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-10 21:25:03732parcourir

How to Calculate the MD5 Hash of a File in C   using OpenSSL?

Calcul du hachage MD5 à partir d'un fichier en C

Dans les scénarios où la protection de l'intégrité des données est essentielle, l'algorithme de hachage MD5 joue un rôle essentiel. Pour calculer le hachage MD5 d'un fichier en C, voici une implémentation robuste utilisant OpenSSL :

Implémentation :

#include <fstream>
#include <openssl/md5.h>

int main() {
  // Open the file
  std::ifstream file("input_file.txt");

  // Create a buffer to store the file contents
  std::vector<char> buffer(std::istreambuf_iterator<char>(file), {});

  // Calculate the MD5 hash
  unsigned char hash[MD5_DIGEST_LENGTH];
  MD5((unsigned char*) buffer.data(), buffer.size(), hash);

  // Convert the hash to a string
  std::stringstream ss;
  for (int i = 0; i < MD5_DIGEST_LENGTH; i++) {
    ss << std::hex << std::setfill('0') << std::setw(2) << (int) hash[i];
  }
  std::string md5_hash = ss.str();

  // Print the MD5 hash
  std::cout << "MD5 hash: " << md5_hash << std::endl;

  return 0;
}

Cette implémentation ouvre le fichier, lit son contenu dans un tampon et calcule le hachage MD5 à l'aide de la bibliothèque OpenSSL. Le hachage est ensuite converti en chaîne hexadécimale et affiché.

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!

Déclaration:
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