Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengira Hash MD5 Fail menggunakan C?

Bagaimana untuk Mengira Hash MD5 Fail menggunakan C?

Barbara Streisand
Lepaskan: 2024-11-27 07:19:08
asal
913 orang telah melayarinya

How to Calculate the MD5 Hash of a File using 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");
}
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan