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

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

Barbara Streisand
Freigeben: 2024-11-27 07:19:08
Original
854 Leute haben es durchsucht

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

Den MD5-Hash einer Datei in C erhalten

Um den MD5-Hash einer Datei zu ermitteln, kann man die folgenden Schritte verwenden:

Schritt 1: Dateideskriptor erstellen und Datei bestimmen Größe

Ermitteln Sie mit der Funktion open() einen Dateideskriptor für die Zieldatei. Verwenden Sie anschließend die Funktion fstat(), um die Größe der Datei zu bestimmen.

Schritt 2: Datei in den Speicher zuordnen

Verwenden Sie die Funktion mmap(), um die Datei in den Speicher zuzuordnen Speicher und bietet schreibgeschützten Zugriff. Diese Zuordnung erleichtert den direkten Zugriff auf den Inhalt der Datei.

Schritt 3: Berechnen Sie den MD5-Hash

Rufen Sie unter Verwendung der OpenSSL-Bibliothek die Funktion MD5() auf, um den MD5-Hash zu berechnen des Inhalts der Datei.

Schritt 4: Zuordnung der Datei aufheben von Speicher

Sobald der MD5-Hash berechnet wurde, verwenden Sie die Funktion munmap(), um die Zuordnung der Datei aus dem Speicher aufzuheben. Dieser Schritt gibt die Dateizuordnung frei.

Schritt 5: MD5-Hash mit Dateinamen drucken

Zeigen Sie den berechneten MD5-Hash zusammen mit dem entsprechenden Dateinamen als Referenz an.

Der folgende C-Codeausschnitt demonstriert diesen Prozess:

#include <openssl/md5.h>

void computeMD5(const char* filename) {
  // Establish file descriptor and determine file size
  int fd = open(filename, O_RDONLY);
  struct stat statbuf;
  fstat(fd, &statbuf);
  size_t file_size = statbuf.st_size;

  // Map file into memory
  char* file_buffer = (char*)mmap(0, file_size, PROT_READ, MAP_SHARED, fd, 0);

  // Compute MD5 hash
  unsigned char md5[MD5_DIGEST_LENGTH];
  MD5((unsigned char*)file_buffer, file_size, md5);

  // Unmap file from memory
  munmap(file_buffer, file_size);

  // Print MD5 hash with file name
  printf("MD5 hash of '%s': ", filename);
  for (int i = 0; i < MD5_DIGEST_LENGTH; i++) {
    printf("%02x", md5[i]);
  }
  printf("\n");
}
Nach dem Login kopieren

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage