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"); }
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!