Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengira Hash MD5 Fail menggunakan C?
Mendapatkan Cincang MD5 Fail dalam C
Untuk menentukan cincang MD5 bagi fail, seseorang boleh menggunakan langkah berikut:
Langkah 1: Wujudkan Deskriptor Fail dan Tentukan Fail Saiz
Menggunakan fungsi open(), dapatkan deskriptor fail untuk fail sasaran. Selepas itu, gunakan fungsi fstat() untuk menentukan saiz fail.
Langkah 2: Petakan Fail ke dalam Memori
Gunakan fungsi mmap() untuk memetakan fail ke dalam memori, menyediakan akses baca sahaja. Pemetaan ini memudahkan akses terus kepada kandungan fail.
Langkah 3: Kira Cincang MD5
Menggunakan perpustakaan OpenSSL, gunakan fungsi MD5() untuk mengira cincang MD5 daripada kandungan fail.
Langkah 4: Nyahpetakan Fail daripada Memori
Setelah cincang MD5 telah dikira, gunakan fungsi munmap() untuk menyahpetakan fail daripada memori. Langkah ini melepaskan pemetaan fail.
Langkah 5: Cetak Cincang MD5 dengan Nama Fail
Paparkan cincang MD5 yang dikira bersama-sama dengan nama fail yang sepadan untuk rujukan.
Coretan kod C berikut menunjukkan proses ini:
#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"); }
Atas ialah kandungan terperinci Bagaimana untuk Mengira Hash MD5 Fail menggunakan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!