Heim >Backend-Entwicklung >C++ >Wie berechne ich den MD5-Hash einer Datei in C?

Wie berechne ich den MD5-Hash einer Datei in C?

DDD
DDDOriginal
2024-11-11 17:38:03541Durchsuche

How do I Calculate the MD5 Hash of a File in C  ?

MD5-Hash aus einer Datei in C abrufen: Eine Schritt-für-Schritt-Anleitung

In C wird der MD5-Hash einer Datei berechnet eine entscheidende Aufgabe für die Überprüfung der Datenintegrität und die sichere Übertragung. Um diesen Prozess zu vereinfachen, tauchen wir in eine praktische Implementierung ein.

Schritt 1: Link zur OpenSSL-Bibliothek

Für diese Implementierung benötigen Sie die OpenSSL-Bibliothek, die stellt den MD5-Hash-Algorithmus bereit. Verwenden Sie beim Kompilieren die folgende Zeile:

gcc md5.c -o md5 -lssl

Schritt 2: Definieren Sie den MD5-Hash

Deklarieren Sie ein Array zum Speichern des MD5-Hashwerts:

unsigned char result[MD5_DIGEST_LENGTH];

Schritt 3: Öffnen Sie die Datei und holen Sie sie sich Größe

int file_descript = open(argv[1], O_RDONLY);
unsigned long file_size = get_size_by_fd(file_descript);

Schritt 4: Ordnen Sie die Datei dem Speicher zu

Um große Dateien effizient zu verarbeiten, ordnen Sie den Dateiinhalt mit mmap() dem Speicher zu:

file_buffer = mmap(0, file_size, PROT_READ, MAP_SHARED, file_descript, 0);

Schritt 5: Berechnen Sie den MD5 Hash

Verwenden Sie die MD5()-Funktion, um den Hash-Wert des zugeordneten Dateipuffers zu berechnen:

MD5((unsigned char*) file_buffer, file_size, result);

Schritt 6: Drucken Sie den MD5-Hash

Zeigen Sie den berechneten MD5-Hash als Hexadezimalzahl an Ziffern:

print_md5_sum(result);
printf("  %s\n", argv[1]);

Vollständiger Codeausschnitt:

#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <openssl/md5.h>

unsigned char result[MD5_DIGEST_LENGTH];

void print_md5_sum(unsigned char* md){ ... }
unsigned long get_size_by_fd(int fd){ ... }

int main(int argc, char *argv[]){ ... }

Dieser Code bietet Ihnen eine umfassende Implementierung zur Berechnung des MD5-Hashs von Dateien in C .

Das obige ist der detaillierte Inhalt vonWie berechne ich den MD5-Hash einer Datei in C?. 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