Heim >Backend-Entwicklung >C++ >Wie berechnet man den MD5-Hash einer Datei in C mit OpenSSL?

Wie berechnet man den MD5-Hash einer Datei in C mit OpenSSL?

Linda Hamilton
Linda HamiltonOriginal
2024-11-10 21:25:03786Durchsuche

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

Berechnen des MD5-Hash aus einer Datei in C

In Szenarien, in denen der Schutz der Datenintegrität von entscheidender Bedeutung ist, spielt der MD5-Hash-Algorithmus eine entscheidende Rolle. Um den MD5-Hash einer Datei in C zu berechnen, finden Sie hier eine robuste Implementierung unter Verwendung von OpenSSL:

Implementierung:

#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;
}

Diese Implementierung öffnet die Datei und liest ihren Inhalt in einen Puffer und berechnet den MD5-Hash mithilfe der OpenSSL-Bibliothek. Der Hash wird dann in eine hexadezimale Zeichenfolge umgewandelt und angezeigt.

Das obige ist der detaillierte Inhalt vonWie berechnet man den MD5-Hash einer Datei in C mit OpenSSL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn