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
Freigeben: 2024-11-11 17:38:03
Original
540 Leute haben es durchsucht

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
Nach dem Login kopieren

Schritt 2: Definieren Sie den MD5-Hash

Deklarieren Sie ein Array zum Speichern des MD5-Hashwerts:

unsigned char result[MD5_DIGEST_LENGTH];
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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]);
Nach dem Login kopieren

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[]){ ... }
Nach dem Login kopieren

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage