Obtention du hachage MD5 d'un fichier en C
Pour déterminer le hachage MD5 d'un fichier, on peut utiliser les étapes suivantes :
Étape 1 : Établir le descripteur de fichier et déterminer le fichier Taille
À l'aide de la fonction open(), obtenez un descripteur de fichier pour le fichier cible. Ensuite, utilisez la fonction fstat() pour déterminer la taille du fichier.
Étape 2 : Mapper le fichier en mémoire
Utilisez la fonction mmap() pour mapper le fichier dans mémoire, offrant un accès en lecture seule. Ce mappage facilite l'accès direct au contenu du fichier.
Étape 3 : Calculer le hachage MD5
À l'aide de la bibliothèque OpenSSL, invoquez la fonction MD5() pour calculer le hachage MD5 du contenu du fichier.
Étape 4 : Démapper le fichier de Mémoire
Une fois le hachage MD5 calculé, utilisez la fonction munmap() pour démapper le fichier de la mémoire. Cette étape libère le mappage de fichiers.
Étape 5 : Imprimer le hachage MD5 avec le nom de fichier
Affichez le hachage MD5 calculé ainsi que le nom de fichier correspondant pour référence.
L'extrait de code C suivant illustre ce processus :
#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"); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!