在 C 中取得檔案的 MD5 雜湊
要確定檔案的 MD5 哈希,可以使用以下步驟:
第一步:建立檔案描述子並確定檔案Size
使用 open() 函數取得目標檔案的檔案描述符。隨後,利用 fstat() 函數確定檔案的大小。
步驟 2:將檔案對應到記憶體
使用 mmap() 函數將檔案對應到內存,提供唯讀存取。此映射有助於直接存取文件內容。
第 3 步:計算 MD5 雜湊
利用 OpenSSL 函式庫,呼叫 MD5() 函數來計算 MD5 雜湊檔案內容的。
第 4 步:從下列位置取消檔案映射記憶體
計算 MD5 雜湊後,使用 munmap() 函數從記憶體中取消檔案的對應。此步驟釋放檔案映射。
第 5 步:列印帶有檔案名稱的 MD5 雜湊值
顯示計算出的 MD5 雜湊值以及對應的檔案名稱以供參考。
以下 C 程式碼片段示範了此過程:
#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"); }
以上是如何使用 C 計算檔案的 MD5 雜湊值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!