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
794 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!

sumber:php.cn
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